
구조 관계:
Deployment → ReplicaSet → Pod
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
labels:
app: myapp
type: front-end
spec:
replicas: 3 # 유지할 Pod 개수 지정
selector: # 관리할 Pod 라벨 정의
matchLabels:
type: front-end
template: # Pod 템플릿
metadata:
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
| 목적 | 명령어 | 설명 |
|---|---|---|
| Deployment 생성 | kubectl create -f deployment-definition.yml | Deployment 객체 생성 |
| Deployment 목록 | kubectl get deployments | 생성된 Deployment 확인 |
| ReplicaSet 확인 | kubectl get rs | Deployment가 생성한 ReplicaSet 확인 |
| Pod 확인 | kubectl get pods | RS가 관리하는 Pod 확인 |
| 전체 리소스 확인 | kubectl get all | Deployment, RS, Pod 등 모두 확인 |
| Deployment 삭제 | kubectl delete deployment <이름> | Deployment와 관련 RS, Pod 삭제 |
kubectl set image deployment/myapp-deployment nginx-container=nginx:1.21
kubectl rollout undo deployment/myapp-deployment
kubectl rollout status deployment/myapp-deployment
kubectl rollout history deployment/myapp-deployment
kubectl [command] [TYPE] [NAME] -o <output_format>
| 옵션 | 설명 | 예시 |
|---|---|---|
| -o json | JSON 형식 출력 | kubectl get pod mypod -o json |
| -o yaml | YAML 형식 출력 | kubectl get pod mypod -o yaml |
| -o name | 리소스 이름만 출력 | kubectl get pods -o name |
| -o wide | 표 형식 + 추가 정보 | kubectl get pods -o wide |
예시:
kubectl create namespace test-123 --dry-run=client -o json
kubectl create namespace test-123 --dry-run=client -o yaml
kubectl get pods -o wide