kubectl CRUD

1 minute read

kubectl CRUD

  • Create
    • kubectl create
    • kubectl run (Pod을 생성)
    • kubectl apply*
  • Read
    • kubectl get
    • kubectl describec
  • Update
    • kubectl edit
    • kubectl replace
    • kubectl apply*
  • Delete
    • kubectl delete
  • Others
    • kubectl logs
    • kubectl exec


큰 틀에서 형식은 아래와 같다.

$ kubectl [command] [resource] [resource-name] [options]

단, Pod에 대한 명령어는 리소스를 명시할 필요가 없다.

  • kubectl run은 Pod을 생성한다.
  • kubectl logs는 Pod의 로그를 확인한다.
  • kubectl exec는 Pod의 컨테이너에 접속한다.

리소스 업데이트

in-place 업데이트

kubectl apply, kubectl edit은 리소스를 in-place로 업데이트한다.

단, in-place 업데이트는 아래의 속성이 변경될 때만 가능하다.

  • spec.containers[*].image
  • spec.initContainers[*].image
  • spec.tolerations

그외의 변경은 직접 yaml

destructive 업데이트

in-place 업데이트가 불가능한 경우다. kubectl replace --force 명령어로 기존 리소스를 삭제하고 다시 만든다.

$ kubectl replace -f [file.yaml] --force

기존 리소스 정보를 kubectl get -o yaml로 띄운 후 참고하면서, “다른 터미널”을 열어 yaml 파일을 만들어 가면 수월하다.


Reference