Kubernetes 명령어

2026. 6. 13. 18:00Kubernetes


Ⅰ. 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