kubectl은 쿠버네티스 클러스터를 조회·조작하는 CLI(Command-Line Interface)다. 앱 개발자가 가장 자주 쓰는 건 "내 Pod가 떠 있나, 왜 죽었나"를 확인하는 명령들이다.
조회와 로그
kubectl get pods -n prod -o wide # 상태, 재시작 횟수, 노드
kubectl get pods -w # 배포 중 변화 지켜보기
kubectl describe pod <pod> -n prod # 이벤트: 왜 Pending인지, 왜 재시작했는지
kubectl logs -f <pod> --tail=100
kubectl logs <pod> --previous # 방금 죽은 컨테이너의 마지막 로그안으로 들어가기와 연결
kubectl exec -it <pod> -- sh
kubectl port-forward <pod> 3000:3000 # localhost:3000 → Pod배포
kubectl apply -f deployment.yaml
kubectl rollout status deployment/web
kubectl rollout restart deployment/web # Pod를 하나씩 새로 교체
kubectl rollout undo deployment/web # 이전 버전으로Pod 상태 읽기
| 상태 | 뜻 | 먼저 볼 것 |
|---|---|---|
Pending | 배치할 노드를 못 찾음 | describe 이벤트(리소스 부족, 볼륨) |
CrashLoopBackOff | 뜨자마자 죽기를 반복 | logs --previous, 설정·환경변수 |
OOMKilled | 메모리 limit 초과 | limit, 메모리 누수 |
ImagePullBackOff | 이미지를 못 받음 | 태그 오타, 레지스트리 권한 |
흔한 실수
-n을 빼면 default namespace만 본다. "내 Pod가 안 보여요"의 단골 원인이다.-A는 전체- 컨텍스트(클러스터)를 잘못 고른 채 명령을 친다.
kubectl config current-context로 확인한다
504가 나면 Pod가 모두 Running인지 → describe 이벤트 → 앱 로그 순으로 좁힌다. 범위를 좁혀 가는 습관은 디버깅 문제 정의 5단계과 최소 재현, 개념은 쿠버네티스 핵심 개념를 본다.
출처: kubectl 빠른 참조: 리소스 조회 · 실행 중인 Pod 다루기 · Pod 단계