Deployment 는 Pod 및 ReplicaSet에 대한 선언적 업데이트를 제공합니다
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
# 명령어로 파일 생성
kubectl create deploy [deploy-name] \
--image=[image-name] \
--replicas=[number of pod] \
--[other option]=[value] \
--dry-run=client --[option] \
-o yaml > sample-deploy.yaml
# yaml 파일로 리소스 생성 또는 업데이트
kubectl apply -f sample-deploy.yaml
# 조회
kubectl get deploy -o wide -n [namespace]
# yaml 형식으로 리소스 프린트
kubectl get deploy [deploy-name] -o yaml -n [namespace]
# 수정
kubectl edit deploy sample-deploy -n [namespace]
# 삭제
kubectl delete deploy sample-deploy -n [namespace]
# 강제 삭제 후 변경사항 적용하여 재생성
kubectl replace --force -f sample-deploy.yaml
# 상세정보 확인
# 대부분의 정보는 아래의 명령어로 응답받은 정보에서 확인 가능함
kubectl describe deploy sample-deploy -n [namespace]