본문 바로가기
IT Knowledge/Kubernetes

Kubernetes 기본 명령어 정리(kubectl)

by Seok. 2020. 12. 21.
반응형

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/

반응형

댓글