kubectl
큐브컨트롤
Kubernetes CLI 도구. 클러스터 관리 명령어 실행.
큐브컨트롤
Kubernetes CLI 도구. 클러스터 관리 명령어 실행.
kubectl(큐브컨트롤, 발음: 큐브-CTL 또는 큐브-커틀)은 Kubernetes 클러스터를 관리하는 공식 커맨드라인 도구입니다. API 서버와 통신하여 Pod, Service, Deployment 등 모든 Kubernetes 리소스를 생성, 조회, 수정, 삭제할 수 있습니다.
명령 구조는 kubectl [동사] [리소스] [이름] [옵션]입니다. 주요 동사로 get(조회), describe(상세정보), apply(적용), delete(삭제), logs(로그), exec(명령실행)가 있습니다. YAML 파일로 선언적 관리가 가능하며, --dry-run으로 실행 전 검증할 수 있습니다.
kubeconfig 파일(~/.kube/config)에 클러스터 접속 정보가 저장됩니다. context로 여러 클러스터를 관리하고, 네임스페이스로 리소스를 격리합니다. RBAC 권한에 따라 실행 가능한 명령이 제한됩니다.
실무에서는 kubectl get pods --watch로 실시간 상태 확인, kubectl logs -f로 로그 스트리밍, kubectl exec -it로 컨테이너 접속을 자주 사용합니다. alias k=kubectl 설정과 bash completion으로 생산성을 높입니다.
# 리소스 조회
kubectl get pods # Pod 목록
kubectl get pods -o wide # 추가 정보 (IP, Node)
kubectl get pods -w # 실시간 변화 감시
kubectl get all -n production # 특정 네임스페이스 전체 리소스
# 상세 정보 및 로그
kubectl describe pod my-pod # Pod 상세 정보
kubectl logs my-pod -f # 로그 스트리밍
kubectl logs my-pod -c nginx # 특정 컨테이너 로그
kubectl logs -l app=web --tail=100 # 레이블로 여러 Pod 로그
# 리소스 생성/적용
kubectl apply -f deployment.yaml # 선언적 적용
kubectl apply -f ./k8s/ # 디렉토리 전체 적용
kubectl create deployment nginx --image=nginx # 명령형 생성
kubectl apply -f - <
시니어: "운영 클러스터 Pod가 CrashLoopBackOff인데, kubectl describe로 이벤트 확인해봐요."
주니어: "OOMKilled가 나오네요. 메모리 limit을 512Mi에서 1Gi로 올려야 할 것 같아요."
면접관: "kubectl apply와 kubectl create의 차이점은 무엇인가요?"
지원자: "create는 리소스가 없을 때만 생성하고, apply는 없으면 생성, 있으면 업데이트합니다. GitOps 환경에서는 선언적 관리를 위해 apply를 사용합니다."
리뷰어: "운영 환경에서 kubectl delete를 직접 실행하는 스크립트는 위험해요."
개발자: "ArgoCD로 관리하도록 수정하고, kubectl은 조회용으로만 제한하겠습니다."