Kubernetes 명령어
2026. 6. 13. 18:00ㆍKubernetes
Ⅰ. Kubectl 명령어
| kubectl 명령어 | 형태 | #kubectl [COMMAND] [TYPE] [NAME] [flags] | ||
| 옵션 | 옵션 | 설명 | 종류 | |
| COMMAND | 수행할 동작 지정 | 리소스 생성 | ||
| 리소스 조회 | ||||
| 리소스 삭제 | ||||
| TYPE | 리소스의 종류 지정 | Pod | ||
| Service | ||||
| Deployment | ||||
| NAME | 특정 리소스의 이름 지정 (생략 시 전체 조회) | |||
| flags | 추가 옵션 (-o, -n, -f 등) | |||
● [COMMAND]
| [COMMAND] or [CMD] |
구분 | 설명 | |
| 개념 | 하나 이상의 리소스에서 수행하려는 동작 지정 | ||
| COMMAND 라인에서 지정하는 플래그는 기본값과 해당 환경 변수 무시 | |||
| 주요 명령어 | 명령어 | 설명 | |
| create | 리소스 새로 생성 | ||
| ex) kubectl create -f deployment.yaml | |||
| get | 리소스 정보 조회 | ||
| ex) kubectl get pods -o wide | |||
| describe | 리소스 상세 정보 출력 | ||
| ex) kubectl describe pod mypod | |||
| delete | 리소스 삭제 | ||
| ex) kubectl delete pod mypod | |||
| run | 새로운 Pod 생성 후 실행 | ||
| ex) kubectl run nginx --image=nginx | |||
| apply | 선언형 설정 (YAML) 적용 또는 업데이트 | ||
| ex) kubectl apply -f deployment.yaml | |||
| edit | 기존 리소스를 실시간 편집 (YAML 에디터 열기) | ||
| ex) kubectl edit deployment nginx | |||
| expose | Pod / Deployment를 Service로 노출 | ||
| ex) kubectl expose deployment nginx --port=80 --type=NodePort | |||
| scale | Replica 수 조정 | ||
| ex) kubectl scale deployment nginx --replicas=5 | |||
| rollout | 배포 상태 확인 및 롤백 | ||
| ex) kubectl rollout status deployment nginx | |||
| logs | Pod 로그 출력 | ||
| ex) kubectl logs mypod | |||
| exec | 실행 중인 컨테이너 내부에서 명령 수행 | ||
| ex) kubectl exec -it mypod -- /bin/bash | |||
| top | 리소스 사용량 확인 (metrics-server 필요) | ||
| ex) kubectl top pods | |||
| explain | 리소스 필드 구조 및 설명 확인 | ||
| ex) kubectl explain pod.spec.containers | |||
| apply -f | YAML 파일을 읽어 리소스 생성 또는 업데이트 | ||
| ex) kubectl apply -f pod.yaml | |||
| delete -f | YAML 파일을 기준으로 리소스 삭제 | ||
| ex) kubectl delete -f pod.yaml | |||
● [TYPE]
| [TYPE] | 구분 | 설명 | ||
| 개념 | 리소스 타입 지정 | |||
| 대소문자 구분 없음 | ||||
| 단수형, 복수형, 약어 모두 지정 가능 | ||||
| 리소스 타입 | 리소스 타입 | 축약형 | 설명 | |
| pods | po | 컨테이너 최소 실행 단위 | ||
| services | svc | 네트워크 접근 지점 제공 | ||
| deployments | deploy | Pod 배포 및 버전 관리 | ||
| replicasets | rs | Pod 개수 유지 관리 | ||
| daemonsets | ds | 모든 노드에서 Pod 1개씩 실행 | ||
| statefulsets | sts | 상태 유지 Pod 관리 | ||
| jobs | job | 단일 작업 실행용 Pod 관리 | ||
| cronjobs | cj | 주기적 실행 작업 관리 | ||
| configmaps | cm | 환경 변수 / 설정 데이터 관리 | ||
| secrets | secret | 암호화된 민감 데이터 관리 | ||
| namespaces | ns | 리소스 격리 단위 | ||
| nodes | no | 실제 물리 / 가상 노드 정보 | ||
| ingress | ing | 외부 요청 라우팅 제어 | ||
| pv / pvc | pv / pvc | 영속 스토리지 및 스토리지 요청 | ||
● [NAME]
| [NAME] |
구분 | 설명 | 예시 |
| 개념 | 대상 리소스의 이름 지정 | ex) kubectl get pod mypod | |
| 대소문자 구분함 | |||
| 이름 지정할 경우, 그 리소스만 대상으로 함 | |||
| 이름 지정 생략할 경우, 해당 타입의 모든 리소스를 대상으로 하고, 모든 리소스에 대한 세부 사항 표시 |
|||
| 복수 지정 | 공백으로 여러 개 지정 가능 | ex) kubectl delete pod mypod1 mypod2 | |
| 타입 / 이름 표기 | 모호함 방지를 위해 TYPE / NAME 형식 사용 가능 | ex) kybectl describe svc/frontend | |
| 네임스페이스 | 네임스페이스가 다른 동일 이름을 다룰 경우, -n 또는 --namespace로 구분 |
ex) kubectl get pod mypod -n dev | |
| 이름 생략 | 이름을 생략하고 라벨 / 필드 셀렉터로 대상 선택 가능 |
ex) kubectl get pods -l app=web | |
| 전 네임스페이스 | 모든 네임스페이스에서 같은 이름 찾고 싶을 때 사용 |
ex) kubectl get pod mypod --all-namespaces | |
| -f 와 함께 | -f 파일로 작업할 경우,보통 TYPE / NAME 생략 (파일의 메타데이터 사용) |
kubectl apply -f deploy.yaml |
● 예시
| 예시 | 설명 | 구분 | 형태 및 예시 |
| 리소스가 모두 동일한 타입인 경우, 리소스 그룹화 |
형태 | TYPE name1 name2 name<#> | |
| 예시 | ex) kubectl get pod example-pod1 example-pod2 | ||
| 여러 리소스 타입을 개별적으로 지정 | 형태 | TYPE1/name1 TYPE2/name2 TYPE<#>/name<#> | |
| 예시 | ex) kubectl get pod/example-pod1 replicationcontroller/exapmle-rc1 | ||
| 하나 이상의 파일로 리소스 지정 | 형태 | -f file1 -f file2 -f file<#> | |
| 특징 | YAML이 구성 파일에 대해 더 사용자 친화적이므로 JSON 대신 YAML 사용 |
● [flgs]
| [flgs] | 구분 | 설명 | |
| 개념 | 선택적 옵션 지정 | ||
| Kubernetes API 서버 주소 및 출력 형식 등 설정 가능 | |||
| 자주 쓰는 옵션 |
옵션 | 설명 | |
| -f | YAML / JSON 파일 지정 | ||
| ex) kubectl apply -f app.yaml | |||
| -o wide | 추가 정보 표시 | ||
| ex) kubectl get pods -o wide | |||
| -o yaml | 출력 포맷을 YAML로 지정 | ||
| ex) kubectl get svc nginx -o yaml | |||
| -n | Namespace 지정 | ||
| ex) kubectl get pods -n kube-system | |||
| --watch | 실시간 상태 모니터링 | ||
| ex) kubectl get pods --watch | |||
| --all-namespaces | 전체 Namespace 대상 | ||
| ex) kubectl get pods --all-namespaces | |||
| --selector | 라벨 기반 필터링 | ||
| ex) kubectl get pods --selector app=nginx | |||
| --dry-run=client | 실제 실행 없이 테스트 | ||
| ex) kubectl apply -f pod.yaml --dry-run=client | |||
| --force | 강제 삭제 | ||
| ex) kubectl delete pod mypod --force --grace-period=0 | |||
Ⅱ. 자주 사용하는 kubectl 명령어
Ⅱ - Ⅰ . 리소스 조회 / 정보 확인
| 리소스 조회 / 정보 확인 | 명령어 | 설명 |
| kubectl get [TYPE] [NAME] [옵션] | 리소스 목록 및 상태 확인 | |
| kubectl get pods -A | 모든 네임스페이스의 Pod 목록 조회 | |
| kubectl get pods -o wide | IP, 노드 등 세부 정보 포함 출력 | |
| kubectl describe [TYPE] [NAME] | 리소스 상세 정보 및 이벤트 로그 확인 | |
| kubectl edit [TYPE] [NAME] | YAML 형식으로 실시간 편집 (vim 열림) | |
| kubectl get all | 현재 네임스페이스 내 모든 리소스 조회 |
Ⅱ - Ⅱ. 리소스 생성
| 리소스 생성 | 명령어 | 설명 |
| kubectl run [TYPE] [NAME] [옵션] | 리소스 생성하고 실행 | |
| kubectl create [TYPE] [NAME] [옵션] | 리소스 생성 | |
| kubectl apply [TYPE] [NAME] [옵션] | 변경 사항 반영하여 리소스 재생성 | |
| kubectl run [NAME] --image=[이미지명] | 지정한 이미지로 Pod 실행 | |
| kubectl create -f [파일명].yaml | YAML 파일로 새 리소스 생성 | |
| kubectl apply -f [파일명].yaml | 선언형 설정 반영 (변경사항 자동 갱신) | |
| kubectl create deployment web --image=nginx | nginx 이미지를 이용해 Deployment 생성 | |
| kubectl expose deployment web --port=80 --type=NodePort | Deployment를 NodePort 서비스로 노출 |
Ⅱ - Ⅲ. 리소스 수정
| 리소스 수정 | 명령어 | 설명 |
| kubectl patch [TYPE] [NAME] -p '{"spec" : {"replicas" :3}}' | JSON 형식으로 부분 수정 | |
| kubectl replace -f [파일명].yaml | YAML 전체 교체하여 리소스 재생성 | |
| kubectl apply -f [파일명].yaml --force | 기존 리소스를 강제 재적용 (삭제 후 생성) | |
| kubectl set image [TYPE] / [NAME] [컨테이너] = [새 이미지] | 실행 중 리소스의 컨테이너 이미지 업데이트 |
Ⅱ - Ⅳ. 리소스 삭제
| 리소스 삭제 | 명령어 | 설명 |
| kubectl delete [TYPE] [NAME] | 지정한 리소스 삭제 | |
| kubectl delete -f [파일명].yaml | 파일 기반 리소스 삭제 | |
| kubectl delete pod webserver | 특정 Pod 삭제 | |
| kubectl delete all --all | 네임스페이스 내 모든 리소스 일괄 삭제 |
Ⅱ - Ⅴ. [TAB] 자동완성
| [TAB] 자동 완성 |
명령어 | 설명 | |
| kubectl get d[TAB] -> kubectl get deployments.apps | d로 시작하는 리소스 자동 완성 | ||
| kubectl get de[TAB] -> kubectl get deployments.apps | deployment 자동 완성 | ||
| kubectl get p[TAB] -> kubectl get pods | Pod 관련 리소스 자동 완성 | ||
| kubectl get s[TAB] -> kubectl get services | Service 관련 리소스 자동 완성 | ||
Ⅱ - Ⅵ. 로그 / 디버깅
| 로그 / 디버깅 | 명령어 | 설명 |
| kubectl logs [POD_NAME] | 특정 Pod의 로그 출력 | |
| kubectl logs -f [POD_NAME] | 실시간 로그 스트리밍 | |
| kubectl logs [POD_NAME] --previous | 이전 컨테이너 로그 확인 | |
| kubectl exec -it [POD_NAME] -- /bin/bash | Pod 내부 쉘 접속 | |
| kubectl describe pod [POD_NAME] | 이벤트 및 오류 로그 확인 | |
| kubectl get events --sort-by=.metadata.creationTimestamp | 최근 이벤트 순으로 로그 정렬 |
Ⅱ - Ⅶ. 클러스터 / 노드 점검
| 클러스터 및 노드 점검 |
명령어 | 설명 |
| kubectl get nodes -o wide | 노드 목록 및 상세 정보 조회 | |
| kubectl describe node [NODE_NAME] | 노드의 자원 상태 및 할당량 확인 | |
| kubectl top nodes | 노드별 CPU, 메모리 사용량 표시 | |
| kubectl top pods --all-namespaces | 전체 Pod 리소스 사용량 표시 | |
| kubectl get componentstatuses | API 서버, etcd, 스케줄러 등 제어 플레인 상태 확인 | |
| kubectl cluster - info | 클러스터 엔드포인트 정보 확인 |
Ⅱ - Ⅷ. 배포 관리
| 배포 관리 | 명령어 | 설명 |
| kubectl rollout status deployment/[NAME] | 배포 상태 확인 | |
| kubectl rollout undo deployment/[NAME] | 이전 버전으로 롤백 | |
| kubectl scale deployment [NAME] --replicas=N | 지정 개수로 Pod 수 조정 | |
| kubectl rollout history deployment/[NAME] | 배포 이력 확인 |
Ⅲ. 요약
| 요약 | 구분 | 명령어 | 기능 요약 |
| 리소스 제어 | kubectl | Kubernetes 리소스 (Pod, Service, Deployment 등) 관리 및 조작 | |
| 클러스터 관리 | kubeadm | 클러스터 초기화 (init), 노드 조인 (join), 리셋 (reset) 등 클러스터 구성 관리 |
|
| 런타임 점검 | crictl | containerd 기반 런타임 컨테이너 직접 제어 및 상태 점검 | |
| ctr | |||
| 시각화 / 모니터링 | k9s | 리소스 상태 및 Pod 로그를 실시간 대화형 UI로 모니터링 | |
| stern | |||
| 앱 배포 | helm | Helm Chart를 이용한 애플리케이션 패키지 배포 및 버전 관리 | |
| 설정 전환 | kubectx | Kubernetes Context / Namespace 빠른 전환 도구 | |
| kubens | |||
| 로컬 개발 / 테스트 | kind | 로컬 환경에서 경량 Kubernetes 클러스터 구조 | |
| minikube | |||
| 리소스 시각화 | lens | GUI 기반 클러스터 리소스 구조 및 관계 시각화 | |
| octant | |||
| 로그 추적 / 분석 | stern | 다중 Pod 실시간 로그 병합 출력 및 필터링 | |
| kubetail | |||
| 자동화 / 관리 스크립트 | kustomize | YAML 템플릿 관리 및 CI / CD 파이프라인 자동화 | |
| skaffold | |||
| 보안 / 인증 관리 | kubeseal | Secret 암호화 관리 | |
| kubectl cert-manager | 인증서 자동 발급 관리 | ||
| 클러스터 점검 / 진단 | kubectl doctor | 클러스터 상태 진단 및 문제 디버깅 지원 | |
| kubectl debug |
'Kubernetes' 카테고리의 다른 글
| Kubernetes Storage (0) | 2026.06.13 |
|---|---|
| Kubernetes Secret (0) | 2026.06.13 |
| Kubernetes ConfigMap (0) | 2026.06.13 |
| Kubernetes Label과 Annotation (0) | 2026.06.13 |
| Kubernetes Ingress (0) | 2026.06.13 |