[쿠버네티스] - kubectl

chancehee·2023년 9월 10일
0

쿠버네티스

목록 보기
3/17
post-thumbnail

1. kubectl

공식문서는 kubectl을 아래와 같이 정의한다.

The Kubernetes command-line tool, kubectl, allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs.

즉, kubectl의 역할은 쿠버네티스의 상태를 확인하고 원하는 상태를 요청하는 것이다.
쿠버네티스 GUI도 있지만, 처음 공부할 땐 kubectl로 한 땀 한 땀 입력하는 것을 추천한다고 한다.
Minikube로 구성한 쿠버네티스 클러스터를 kubectl을 통해 조작하면서, 명령어에 익숙해질 것이다.

또한 kubectl을 어떻게 발음해야 할지 정확히는 모르겠지만.. 일반적으로 큐브컨트롤, 쿠버네티스컨트롤 이라고 하는 것 같다.

2. kubectl 명령어 기본 구조

kubectl [COMMAND] [TYPE] [NAME] [flags]
  • COMMAND : 하나 이상의 리소스에서 수행하려는 동작을 지정한다. (create, get, describe, delete)
  • TYPE : 리소스 타입을 지정한다. 리소스 타입은 대소문자를 구분하지 않으며 단수형, 복수형 또는 약어 형식을 지정할 수 있다. (node, pod, service)
  • NAME : 리소스 이름을 지정한다. 이름은 대소문자를 구분한다. 이름을 생략하면, 모든 리소스에 대한 세부 사항이 표시된다.
  • flags : 부가적으로 설정할 옵션 (-help, -o options)

3. 기본 명령어

  • apply : 원하는 상태를 적용한다. 보통 -f 옵션으로 파일과 함께 사용한다.
  • get : 리소스 목록을 보여준다.
  • describe : 리소스의 상태를 자세하게 보여준다.
  • delete : 리소스를 제거한다.
  • logs : 컨테이너의 로그를 본다.
  • exec : 컨테이너에 명령어를 전달한다. 컨테이너에 접근할 때 주로 사용한다.
  • config : kubectl 설정을 관리한다.

4. 구체적인 명령어 사용 예시

# 원하는 상태를 적용 
kubectl apply -f [파일명 또는 URL]

# 선언된 리소스 확인 (pod, node, service, all 등) 
kubectl get [TYPE]	

kubectl get pod
kubectl get pods
kubectl get po
kubectl get service
kubectl get svc
kubectl get po, svc
kubectl get all

kubectl get pod -o wide
kubectl get pod -o yaml
kubectl get pod -o json

kubectl get pod --show-labels

# 선언된 리소스 상세 상태 확인 (쿠버네티스에 선언된 리소스의 상세한 상태를 확인)
kubectl describe [TYPE]/[NAME] 또는 [TYPE] [NAME]	

# 리소스 삭제 (쿠버네티스에 선언된 리소스 제거)
kubectl delete [TYPE]/[NAME] 또는 [TYPE] [NAME]
 
# 컨테이너 로그 출력 (만약 하나의 Pod에 여러 개의 컨테이너가 있는 경우는 -c 옵션으로 컨테이너를 지정해야 한다.)
kubectl logs [NAME]	

# 컨테이너 로그 실시간 출력
kubectl logs -f [NAME]

# 컨테이너에 접속 (exec는 컨테이너에 명령어를 전달한다. 주로 컨테이너에 접근할 때 사용한다.)
kubectl exec -it [NAME] -- [COMMAND]	

# 현재 컨텍스트 확인 (여러 개의 쿠버네티스 클러스를 컨텍스트로 설정하고 
필요에 따라 선택할 수 있다.)
kubectl config current-context

# 컨텍스트 설정 
kubectl config use-context [NAME]	

더 많은 명령어들을 확인하고 싶다면 레퍼런스를 참고하면 될 것 같다. -> kubectl 레퍼런스

출처
https://kubernetes.io/docs/tasks/tools/
https://subicura.com/k8s/guide/kubectl.html#%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8C%E1%85%A5%E1%86%BC-%E1%84%80%E1%85%AA%E1%86%AB%E1%84%85%E1%85%B5-config

0개의 댓글