들어가며
쿠버네티스를 설치했다면, 이제는 kubectl을 자유자재로 다루는 것이 필수입니다.
kubectl은 Kubernetes 클러스터와 상호작용할 수 있는 가장 핵심적인 CLI 도구입니다.
Kubernetes를 운영한다는 건 결국, kubectl 명령어로 리소스를 만들고, 조회하고, 수정하고, 삭제하는 일의 연속입니다.
이번 시간에는 반드시 알아야 할 kubectl의 기본 명령어를 정리하고, 각 명령어가 어떤 상황에서 사용되는지를 예시와 함께 설명드리겠습니다.
1. kubectl 구조 이해하기
kubectl의 기본 명령어 구조는 다음과 같습니다.
kubectl [command] [type] [name] [flags]
구성 요소 | 설명 |
---|---|
command | get, describe, create, delete, apply 등 |
type | pod, service, deployment, node 등 리소스 유형 |
name | 리소스 이름 (생략하면 전체 대상) |
flags | 옵션. 예: -n , -o , --watch 등 |
예시
kubectl get pods
kubectl describe node my-node
kubectl delete pod nginx-pod
2. 클러스터 상태 조회
1) 노드 확인
kubectl get nodes
노드의 현재 상태를 확인합니다.
NAME STATUS ROLES AGE VERSION
master Ready control-plane 10d v1.29.0
worker-01 Ready <none> 10d v1.29.0
2) 파드 확인
kubectl get pods
kubectl get pods -A # 모든 네임스페이스의 파드 확인
3) 서비스 확인
kubectl get svc
서비스 IP, 타입, 포트 등을 확인할 수 있습니다.
4) 디플로이먼트 확인
kubectl get deployment
현재 배포된 앱의 상태, 복제 수 등을 확인합니다.
3. 리소스 상세 정보 확인
1) describe
kubectl describe pod [POD_NAME]
kubectl describe node [NODE_NAME]
오브젝트의 상태, 이벤트, 라벨 등을 상세히 보여줍니다.
2) YAML 형태로 보기
kubectl get pod [POD_NAME] -o yaml
실제 리소스 정의 파일을 확인하는 데 유용합니다.
4. 리소스 생성
1) YAML 파일을 통한 생성
kubectl apply -f deployment.yaml
보통의 실무에서는 수동 명령어보다는 apply -f
로 배포 자동화를 합니다.
2) 명령어 기반 생성 (간단 테스트 용도)
kubectl run nginx --image=nginx
위 명령어는 nginx 이미지를 이용해 하나의 Pod를 생성합니다.
5. 리소스 수정
1) 명령어 기반 수정
kubectl edit deployment [DEPLOY_NAME]
기본 에디터(Vim 등)로 YAML을 열고 직접 수정합니다.
2) 적용된 YAML 재적용
kubectl apply -f updated-deployment.yaml
변경된 YAML을 적용하여 리소스를 업데이트합니다.
6. 리소스 삭제
kubectl delete pod [POD_NAME]
kubectl delete -f deployment.yaml
- 특정 리소스를 삭제하거나
- YAML로 생성된 리소스를 파일로 삭제
7. 실시간 모니터링
1) watch 옵션
kubectl get pods --watch
실시간으로 Pod의 상태 변화를 확인할 수 있습니다.
2) 로그 확인
kubectl logs [POD_NAME]
컨테이너의 표준 출력 로그를 확인할 수 있습니다.
멀티 컨테이너 Pod일 경우:
kubectl logs [POD_NAME] -c [CONTAINER_NAME]
8. 네임스페이스 활용
특정 네임스페이스 조회
kubectl get pods -n my-namespace
네임스페이스 생성
kubectl create namespace dev
기본 네임스페이스 설정
kubectl config set-context --current --namespace=dev
9. 오토컴플리션 설정 (선택 사항)
bash/zsh 환경에서 자동 완성을 사용하면 편리합니다.
source <(kubectl completion bash)
혹은 .bashrc
나 .zshrc
에 추가
10. 핵심 명령어 요약
목적 | 명령어 |
---|---|
클러스터 상태 확인 | kubectl get nodes , kubectl cluster-info |
리소스 조회 | kubectl get pods , get svc , get deployments |
리소스 상세보기 | kubectl describe pod [name] , -o yaml |
리소스 생성 | kubectl apply -f [file].yaml |
리소스 수정 | kubectl edit [type] [name] |
리소스 삭제 | kubectl delete pod [name] , delete -f [file].yaml |
로그 보기 | kubectl logs [pod] |
네임스페이스 전환 | kubectl config set-context --current --namespace=[name] |
마무리
kubectl은 쿠버네티스 생태계에서 가장 많이 사용하는 도구입니다.
이 명령어들을 자유롭게 다루는 것만으로도 Kubernetes 환경을 제어할 수 있고, 더 나아가 자동화 스크립트와 연계하여 DevOps의 기반을 마련할 수 있습니다.
이번 글에서 소개한 명령어들을 직접 실습해보시고, 손에 익히는 것이 가장 중요합니다.
kubectl-basic-commands
'개발 창고 > Server' 카테고리의 다른 글
핵심 리소스, Pod: 쿠버네티스 기본 단위 이해하기 (3) | 2025.07.19 |
---|---|
kubectl 명령어 꿀팁 모음: 실전에서 바로 써먹는 노하우 (2) | 2025.07.18 |
Kubernetes 설치하기: 내 손으로 클러스터 만들기 (3) | 2025.07.16 |
Kubernetes의 장점: 왜 쿠버네티스를 써야 할까? (4) | 2025.07.15 |
Kubernetes 아키텍처: 쿠버네티스는 어떻게 동작할까? (4) | 2025.07.14 |