IT Knowledge/Kubernetes

Kubernetes 기본 명령어 정리(kubectl)

Seok. 2020. 12. 21. 11:30
반응형

Kubernetes에서는 kubectl 이라는 명령어를 사용한다.

명령어를 입력받은 apiserver 해당 명령어를 수행한다.

대부분 CLI환경에서 조작이 가능하기 때문에, kubectl 명령어를 사용할 알아야 한다.

 

Kubectl [Command] [Type] [Name] [Flags]

 

Command : 하나 이상의 리소스에서 수행하려고 하는 동작을 지정한다(ex. Create, get, describe…)

Type : 리소스 타입을 지정(대소문자 구분X , 단수형 복수형 약어 모두 지정할 있다.)

Name : 리소스 이름을 지정(대소문자 구분O, 이름을 생략하면 모든 리소스)

          (ex. Kubectl get pod example-pod1 example-pod2…)

Flags : 선택적 플래그를 지정한다 (ex. --server 플래그를 사용해서 쿠버네티스 API서버의 주소와 포트를 지정할 있음)

 

도움이 필요할땐? Kubectl help

 

[명령어]

Cluster-info : 클러스터 마스터와 서비스에 대한 엔드포인트 정보를 표시한다.

  (kubectl cluster-info [flags])

Create : 파일 or 입력에서 하나 이상의 리소스를 생성한다.

  (kubectl create -f FILENAME)

Delete : 리소스를 삭제 한다.

  (kubectl delete (-f FILENAME | TYPE [NAME…]))

Describe : 하나 이상의 리소스의 자세한 상태 표시.

  (kubectl describe (-f FILENAME | TYPE [NAME…]))

Diff : 파일 or 입력에서 차이점 출력

  (kubectl diff -f FILENAME)

Get : 하나 이상의 리소스를 나열한다.

  (kubectl get (-f FILENAME | TYPE [NAME…]))

Set : 어플리케이션 리소스를 구성한다.

  (kubectl set SUBCOMMEND [option])

 

[리소스 타입]

Resource Types에서는 다음 명령을 통해 확인할 있다.

$ kubectl api-resources

Pod 확인

$ kubectl get pod

서비스 확인

$ kubectl get svc

 


 

[예제 : 일반적인 작업]

kubectl apply - 파일 또는 표준입력에서 리소스를 적용하거나 업데이트한다.

더보기

# example-service.yaml의 정의를 사용하여 서비스를 생성한다.
kubectl apply -f example-service.yaml

# example-controller.yaml의 정의를 사용하여 레플리케이션 컨트롤러를 생성한다.
kubectl apply -f example-controller.yaml

# <directory> 디렉터리 내의 .yaml, .yml 또는 .json 파일에 정의된 오브젝트를 생성한다.

kubectl apply -f <directory>

 

kubectl get - 하나 이상의 리소스를 나열한다.

더보기

# 모든 파드를 일반 텍스트 출력 형식으로 나열한다.
kubectl get pods

# 모든 파드를 일반 텍스트 출력 형식으로 나열하고 추가 정보(예: 노드 이름)를 포함한다.
kubectl get pods -o wide

# 지정된 이름의 레플리케이션 컨트롤러를 일반 텍스트 출력 형식으로 나열한다. 팁: 'replicationcontroller' 리소스 타입을 'rc'로 짧게 바꿔쓸 수 있다.
kubectl get replicationcontroller <rc-name>

# 모든 레플리케이션 컨트롤러와 서비스를 일반 텍스트 출력 형식으로 함께 나열한다.
kubectl get rc,services

# 모든 데몬 셋을 일반 텍스트 출력 형식으로 나열한다.

kubectl get ds

# 노드 server01에서 실행 중인 모든 파드를 나열한다.
kubectl get pods --field-selector
=spec.nodeName=server01

 

kubectl logs - 파드의 컨테이너에 대한 로그를 출력한다.

더보기

# 파드 <pod-name>에서 로그의 스냅샷을 반환한다.
kubectl logs <pod-name>
# 파드 <pod-name>에서 로그 스트리밍을 시작한다. 이것은 리눅스 명령 'tail -f'와 비슷하다.
kubectl logs -f <pod-name>

 

 

참고자료 : https://kubernetes.io/ko/docs/reference/kubectl/overview/

반응형