728x90
반응형

Kubernetes와 Minikube를 사용하면서 자주 사용하는 명령어들과 유용한 옵션들을 정리한 문서입니다.


Minikube 명령어

Minikube 시작 및 중지

  • 클러스터 시작
  minikube start  
Minikube 클러스터를 시작합니다. 기본적으로 Minikube VM을 생성하고 Kubernetes를 설정합니다.
  • 클러스터 중지
  minikube stop

Minikube 상태 확인

  • 클러스터 상태 확인
  minikube status

Minikube IP 확인

  • 클러스터 IP 확인
  minikube ip

Minikube 대시보드

  • 대시보드 실행
  minikube dashboard
Minikube의 Kubernetes 대시보드를 실행합니다. 브라우저에서 Kubernetes 클러스터를 시각적으로 관리할 수 있습니다.

Minikube 서비스 접근

  • 서비스 URL 확인 및 브라우저 열기
  minikube service [SERVICE_NAME]
  1. 서비스 URL 생성: 지정된 서비스에 대한 접근 URL을 생성합니다.

  2. 브라우저 열기: 기본 브라우저에서 해당 URL을 자동으로 엽니다.

  3. 포트 포워딩 설정: 필요한 경우, 로컬 호스트와 Minikube 클러스터 간의 포트 포워딩을 설정하여 서비스에 접근할 수 있도록 합니다.

    이 명령어는 주로 개발과 테스트 용도로 사용되며, 로컬 환경에서 서비스를 빠르게 확인하고 접근하는 데 유용합니다.

Minikube 터널링

  • 터널링 시작
  minikube tunnel
  1. LoadBalancer 지원: LoadBalancer 타입의 서비스를 클러스터 외부에 노출합니다.

  2. External IP 할당: 서비스에 외부 IP를 할당하여, 클러스터 외부에서 접근할 수 있도록 합니다.

  3. 권한 요구: sudo 권한을 요구할 수 있습니다, 특히 80, 443과 같은 특권 포트를 사용할 때.

    LoadBalancer 타입의 서비스를 외부에 노출하기 위한 터널링을 시작합니다.

특징 minikube service minikube tunnel
목적 특정 서비스를 빠르게 브라우저에서 접근 LoadBalancer 서비스를 클러스터 외부에 노출
브라우저 자동 열기 아니오
포트 포워딩 필요에 따라 설정 예, 외부 IP 할당을 통해
권한 요구 아니오 예, sudo 권한 요구 가능
주요 사용 사례 개발 및 테스트 용도로 서비스 빠르게 확인 로컬 환경에서 LoadBalancer 서비스 테스트

사용 시나리오

  • minikube service: 특정 서비스를 브라우저에서 빠르게 접근하고 테스트하고자 할 때 사용합니다. 개발 및 테스트 환경에서 유용합니다.
  • minikube tunnel: LoadBalancer 서비스를 외부에 노출시켜야 할 때 사용합니다. 클라우드 환경에서의 배포를 로컬에서 테스트할 때 유용합니다.

Minikube 클러스터 삭제

  • 클러스터 삭제
  minikube delete

Kubectl 명령어

Kubectl 설정

  • 현재 컨텍스트 확인
  kubectl config current-context
  • 컨텍스트 목록 확인
  kubectl config get-contexts
  • 컨텍스트 변경
  kubectl config use-context [CONTEXT_NAME]

리소스 조회

  • 모든 네임스페이스의 모든 리소스 조회
  kubectl get all --all-namespaces
  • 특정 리소스 조회
  kubectl get [RESOURCE_TYPE]
특정 리소스 타입을 조회합니다. 예를 들어, Pod, Service, Deployment 등이 있습니다.
  kubectl get pods
  kubectl get services
  kubectl get deployments
  • 리소스 상세 조회
  kubectl describe [RESOURCE_TYPE] [RESOURCE_NAME]
특정 리소스의 상세 정보를 조회합니다.
  kubectl describe pod [POD_NAME]

리소스 관리

  • 리소스 생성

    kubectl apply -f [FILE_NAME].yaml

    YAML 파일을 사용하여 리소스를 생성하거나 업데이트합니다.

로그 및 디버깅

  • Pod 로그 조회
  kubectl logs [POD_NAME]
-f 옵션을 사용하면 실시간 로그를 조회합니다.

Pod 접근

  • Pod에 명령어 실행
  kubectl exec -it [POD_NAME] -- [COMMAND]
특정 Pod에서 명령어를 실행합니다. 예를 들어, 셸을 실행할 수 있습니다.
  kubectl exec -it [POD_NAME] -- /bin/bash

네임스페이스 관리

  • 네임스페이스 목록 조회
  kubectl get namespaces
  • 네임스페이스 생성
  kubectl create namespace [NAMESPACE_NAME]
  • 네임스페이스 삭제
  kubectl delete namespace [NAMESPACE_NAME]

자주 사용하는 옵션

  • -n [NAMESPACE]: 특정 네임스페이스에서 명령어를 실행합니다.
  kubectl get pods -n [NAMESPACE]
  • -o wide: 출력 형식을 넓게 설정하여 더 많은 정보를 표시합니다.
  kubectl get pods -o wide
  • --all-namespaces: 모든 네임스페이스에서 리소스를 조회합니다.
  kubectl get all --all-namespaces
  • -f [FILE_NAME]: YAML 파일을 사용하여 리소스를 관리합니다.
  kubectl apply -f [FILE_NAME].yaml
  • -l [LABEL_SELECTOR]: 특정 라벨을 가진 리소스를 조회합니다.
  kubectl get pods -l [LABEL_SELECTOR]
반응형