Cloud/Kubernetes

Kubernetes) kubectl 명령어를 알아보기

Adım Kim 2022. 10. 12. 00:03
학습 목표 : kubernetes의 cluster를 사용하기위한 kubectl명령어에 대해 알아본다.

kubctl 이란?

  • Kubernetes 상태를 확인하고 원하는 상태로 요청하는 client 명령
  • Kubernetes cluster에 명령을 내린다.
  • CLI 형태로 사용한다.


kubeconfig 파일

  • kubectl 명령 동작시 $HOME/.kube 디렉토리에서 config file을 찾는다.
  • KUBECONFIG 환경변수를 설정하거나 --kubeconfig flag를 사용하여 다른 kubeconfig 파일을 사용할 수 있다.


kubectl 명령어

kubectl [command] [Type] [NAME] [flags]


(1) command
    -  하나 이상의 리소스(object)에서 수행하려는 동작지점
    -  create, run, apply, get, describe, delete, exec, logs, config 등 여러 command가 있다.
    -  get command

# 1. POD, Replicaset, Depolyment, Service, Job 전체목록 출력
kubectl get all

# 2. cluster 내 node(pod) 목록 출력
kubectl get nodes

# 3. node(또는 pod) 목록정보 상세 출력
kubectl get nodes(또는 pods) -o wide

# 4. node(또는 pod) 정보를 yaml 형식으로 출력
kubectl get node(또는 pod) <node/pod 이름> -o yaml

# 5. label을 포함하여 pod 목록 출력
kubectl get pods -shows-labels

    -  describe command

# 1. 리소스에 대한 상세정보 출력 (초기화 되지않은 리소스도 포함)
kubectl describe [리소스 이름]

    -  apply command

# 1. 하나 이상의 서비스를 생성
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/main/content/ko/examples/application/simple_deployment.yaml
# kubectl apply -f [yaml파일(현재 시스템/원격지 시스템 경로 포함)]

    -  delete command

# 1. 생성시 사용한 yaml을 이용하여 리소스 삭제
kubectl delete -f [yaml 파일]

# 2. TYPE에 해당하는 NAME의 리소스 삭제
kubectl delete [TYPE] [NAME]

# 3. 해당 pod 삭제
kubectl delete [pod NAME]

    -  logs, exec, config command

# 1. pod의 log를 확인하는 log 커맨드
kubectl logs POD [-c container] [--follow] [flags]

# 2. 특정 pod에 대하여 명령을 실행하는 exec 커맨드
kubectl exec [pod NAME] -it/bin/bash

# 3. config 파일내용을 확인하는 config 커맨드
kubectl config view


(2) TYPE
    -  리소스Type을 지정한다.
    -  리소스 Type은 대소문자를 구분하지 않는다.
    -  단수형,복수형 또는 약어 형식으로 지정한다.

(3) NAME
    -  대소문자를 구분하며 리소스이름을 지정한다.
    -  해당 옵션을 생략하면, 모든 리소스를 지정하거나 하나 이상의 file을 지정해야 한다.
    -  리소스가 모두 동일한 TYPE인 경우 리소스를 그룹화 하려면 다음 형식을 사용한다.

kubectl get pod example-pod1 example-pod2
# kubectl get <TYPE> <name1> <name2> ...

    -  여러 리소스 TYPE을 개별적으로 지정하려면 다음 형식을 사용한다.

kubectl get pod/example-pod1 replicationcontroller/example-rc1
# kubectl get <TYPE1>/<name1> <TYPE2>/<name2> ...


(4) flags
    -  flags 옵션은 필요한경우 사용한다.
    -  출력 형식을 지정하는 옵션

-o <flag 내용>

    -  파일을 지정하는 옵션

-f <파일명>

기타 kubectl 명령어


(1) kubectl 명령목록 출력하기
kubectl

(2) command에 대한 도움말

kubectl [command] --help

 

(3) 현재 cluster에서 사용가능한 API 버전 정보 보기

kubectl api-versions


(4) 사용할 수 있는 resource 목록 출력하기

kubectl api-resources


(5) config 파일 내용 출력하기

kubectl config view



참고

 

쿠버네티스 kubectl 설명 및 예제 모음

kubectl은 쿠버네티스 클러스터에 명령을 내리는 CLI(command line interface)입니다. kubectl 문법(바로가기) kubectl 예제(바로가기) kubectl 문법 terminal window에서 아래와 같은 명령어로 kubectl을 동작..

blog.voidmainvoid.net