kubectl 설치 및 설정
Bash
# kubectl 설치 (Linux)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl && mv kubectl /usr/local/bin/
# 클러스터 컨텍스트 확인
kubectl config get-contexts
kubectl config use-context my-cluster
# 현재 컨텍스트
kubectl config current-contextPod 기본 명령
Bash
# Pod 목록
kubectl get pods
kubectl get pods -n kube-system # 네임스페이스 지정
kubectl get pods -A # 모든 네임스페이스
kubectl get pods -o wide # 노드 정보 포함
# Pod 상세 정보
kubectl describe pod my-pod
# Pod 로그
kubectl logs my-pod
kubectl logs my-pod -c my-container # 멀티컨테이너
kubectl logs -f my-pod # 실시간
# Pod 내부 접속
kubectl exec -it my-pod -- bash
kubectl exec -it my-pod -c my-container -- sh
# Pod 삭제
kubectl delete pod my-podDeployment 관리
Bash
# Deployment 생성
kubectl create deployment nginx --image=nginx:latest --replicas=3
# Deployment 목록·상태
kubectl get deployments
kubectl rollout status deployment/nginx
# 이미지 업데이트
kubectl set image deployment/nginx nginx=nginx:1.25
# 롤백
kubectl rollout undo deployment/nginx
kubectl rollout undo deployment/nginx --to-revision=2
# 스케일 조정
kubectl scale deployment nginx --replicas=5
# 롤링 업데이트 히스토리
kubectl rollout history deployment/nginxService 생성·노출
Bash
# ClusterIP (내부 통신)
kubectl expose deployment nginx --port=80 --target-port=80
# NodePort (외부 접근)
kubectl expose deployment nginx \
--type=NodePort --port=80 --target-port=80
# LoadBalancer (클라우드)
kubectl expose deployment nginx \
--type=LoadBalancer --port=80
# Service 목록
kubectl get services
kubectl get svc
# 포트포워딩 (로컬 테스트)
kubectl port-forward service/nginx 8080:80YAML 파일로 리소스 관리
YAML
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
labels:
app: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0
ports:
- containerPort: 3000
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"Bash
kubectl apply -f deployment.yaml
kubectl delete -f deployment.yaml유용한 명령 모음
Bash
# 리소스 전체 조회
kubectl get all -n my-namespace
# 레이블로 필터
kubectl get pods -l app=nginx
# 이벤트 확인 (문제 진단)
kubectl get events --sort-by='.lastTimestamp'
# 노드 상태
kubectl get nodes -o wide
kubectl top nodes
# Pod 리소스 사용량
kubectl top pods
# ConfigMap / Secret
kubectl get configmap
kubectl get secret
kubectl describe secret my-secret편집 안내 · Editorial Note
이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.
질문 & 답변 (Q&A)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.