쿠버네티스 기본 명령어 모음
1. 클러스터 정보 확인
# 클러스터 정보 확인
kubectl cluster-info
# 노드 상태 확인
kubectl get nodes
kubectl get nodes -o wide
# 전체 네임스페이스의 모든 리소스 확인
kubectl get all --all-namespaces
# API 리소스 목록 확인
kubectl api-resources
2. Pod 관련 명령어
# Pod 목록 조회
kubectl get pods
kubectl get po -o wide
kubectl get pods --show-labels
# Pod 상세 정보 확인
kubectl describe pod [pod-name]
# Pod 로그 확인
kubectl logs [pod-name]
kubectl logs -f [pod-name] # 실시간 로그
kubectl logs --tail=100 [pod-name] # 마지막 100줄
# Pod 내부 접속
kubectl exec -it [pod-name] -- /bin/bash
# Pod 생성
kubectl run nginx --image=nginx
kubectl run nginx --image=nginx --port=80
# Pod 삭제
kubectl delete pod [pod-name]
kubectl delete pod --all
3. Deployment 관련 명령어
# Deployment 목록 조회
kubectl get deployments
kubectl get deploy
# Deployment 생성
kubectl create deployment nginx --image=nginx
kubectl create deployment nginx --image=nginx --replicas=3
# Deployment 스케일 조정
kubectl scale deployment nginx --replicas=5
# Deployment 상세 정보
kubectl describe deployment [deployment-name]
# Deployment 수정
kubectl edit deployment [deployment-name]
# Deployment 삭제
kubectl delete deployment [deployment-name]
# 롤아웃 상태 확인
kubectl rollout status deployment [deployment-name]
# 롤아웃 히스토리 확인
kubectl rollout history deployment [deployment-name]
# 롤백 실행
kubectl rollout undo deployment [deployment-name]
4. Service 관련 명령어
# Service 목록 조회
kubectl get services
kubectl get svc
# Service 생성
kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl expose pod nginx --port=80 --type=NodePort
# Service 상세 정보
kubectl describe service [service-name]
# Service 삭제
kubectl delete service [service-name]
5. ConfigMap과 Secret 관련 명령어
# ConfigMap 관리
kubectl get configmaps
kubectl create configmap [name] --from-file=[path/to/file]
kubectl create configmap [name] --from-literal=key1=value1
kubectl describe configmap [name]
# Secret 관리
kubectl get secrets
kubectl create secret generic [name] --from-literal=key1=value1
kubectl describe secret [name]
6. 네임스페이스 관련 명령어
# 네임스페이스 목록
kubectl get namespaces
kubectl get ns
# 네임스페이스 생성
kubectl create namespace [name]
# 네임스페이스 전환
kubectl config set-context --current --namespace=[name]
# 특정 네임스페이스의 리소스 조회
kubectl get all -n [namespace]
7. 리소스 모니터링 명령어
# 리소스 사용량 확인
kubectl top nodes
kubectl top pods
# 이벤트 확인
kubectl get events
kubectl get events --sort-by=.metadata.creationTimestamp
8. 구성 및 컨텍스트 관련 명령어
# 현재 컨텍스트 확인
kubectl config current-context
# 컨텍스트 목록 확인
kubectl config get-contexts
# 컨텍스트 전환
kubectl config use-context [context-name]
# kubeconfig 보기
kubectl config view
9. 리소스 관리 명령어
# 리소스 생성/수정
kubectl apply -f [file.yaml]
kubectl create -f [file.yaml]
# 리소스 삭제
kubectl delete -f [file.yaml]
# 여러 리소스 한번에 삭제
kubectl delete all --all
10. 디버깅 관련 명령어
# 임시 디버깅용 Pod 생성
kubectl run debug --image=busybox --rm -it -- /bin/sh
# 네트워크 테스트용 Pod
kubectl run test-pod --image=nginx --restart=Never
# Pod 문제 해결
kubectl describe pod [pod-name]
kubectl logs [pod-name] --previous # 이전 컨테이너 로그
# 클러스터 상태 진단
kubectl get componentstatuses
11. 고급 명령어
# JSON 경로 사용 예시
kubectl get pods -o jsonpath='{.items[*].metadata.name}'
# 커스텀 컬럼 출력
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase
# Watch 모드로 모니터링
kubectl get pods -w
# 레이블 선택자 사용
kubectl get pods -l app=nginx
# 필드 선택자 사용
kubectl get pods --field-selector status.phase=Running
12. 유용한 옵션들
--all-namespaces, -A: 모든 네임스페이스
--output, -o: 출력 형식 지정 (yaml, json, wide 등)
--selector, -l: 레이블 선택
--force: 강제 실행
--dry-run=client: 실제 실행 없이 시뮬레이션
-v: 로그 레벨 지정