kubectl 명령어 정리 updated_at: 2025-06-20 15:53

kubectl 명령어

kubectl apply

  • 변경사항만 적용: 기존 리소스의 설정을 수정하거나 추가할 때 유용합니다.
  • 선언적 업데이트: 리소스의 전체 정의를 제공하고 Kubernetes가 필요한 변경을 파악해 적용합니다.
kubectl apply -f sample-deployment.yaml

kubectl create

  • 새 리소스 생성: 존재하지 않는 새 리소스를 만드는 데 사용됩니다.
  • 명시적 생성: 명령어가 호출될 때 리소스가 생성됩니다.
kubectl create -f my-custom-nginx.yaml // yaml에 정의된 pod 생성

kubectl exec

kubectl exec -it <podname> -n namespace -- <command> -<arguments-as-per-command>
kubectl exec -it [pod name] -- /bin/bash // pod의 default container의 콘솔 접근
kubectl exec -it [pod name] -c [container name] -- /bin/bash // 1개 이상의 container가 pod 내에 있을 경우 각각의 container 접근법

주요옵션

옵션 설명
-c, --container 대상 컨테이너 지정 (Pod에 여러 개의 컨테이너가 있을 경우 필수)
-i, --stdin 표준 입력(STDIN)을 활성화 (예: bash에서 키보드 입력)
-t, --tty TTY를 할당 (터미널 인터페이스 제공)
--pod-running-timeout Pod이 준비될 때까지 기다리는 시간 (기본 1분)
--namespace 사용할 네임스페이스 설정 (기본은 default)
--context kubeconfig에서 사용할 context 지정
--kubeconfig 특정 kubeconfig 파일 사용
--quiet 실행 결과 출력 억제
--help 사용법 도움말 출력

kubectl delete

kubectl delete pod [pod name] // pod 삭제
kubectl delete --all pods --namespace=foo
kubectl delete deployment [deployment name]
kubectl delete svc [service name]
kubectl delete pvc [pvc name]
kubectl delete persistentvolumeclaim [pvc name]
kubectl delete pv [pv name]
kubectl delete statefulset [statefulset name]
kubectl delete clusterrolebinding [clusterrolebinding name]

kubectl describe

kubectl describe pod {POD NAME} -n {namespace} // 현재 pod의 상태를 보여준다.
kubectl describe svc {Service NAME}

kubectl get

kubectl get nodes
kubectl get pod [pod name] // pod 정보 출력
kubectl get pods // 생성된 pod list up
kubectl get pods -o wide // pods의 상세 리스트
kubectl get deployment
kubectl get configmaps
kubectl get services
kubectl get persistentvolume   
kubectl get pv
kubectl get persistentvolumeclaim
kubectl get pvc
kubectl get clusterrolebindings

kubectl logs

kubectl logs [pod name] // pod name에 대한 logs를 디스플레이
kubectl logs [pod name] --container [container name] // pod name에 포함된 container name의 log
kubectl logs [pod name] --previous --tail 10
kubectl logs deployment/[deployment name] // deployment 의 로그 디스플레이

kubectl port-forward

kubectl port-forward [pod name] 8888:80 //외부의 8888 포트를 컨테이너내의 80 포터로 변경 
평점을 남겨주세요
평점 : 2.5
총 투표수 : 1

질문 및 답글