쿠버네티스 - Deployment

Moon Blue의 IT 로그 📝·2023년 12월 7일
0

Deployment 는 Pod 및 ReplicaSet에 대한 선언적 업데이트를 제공합니다

🔎 특징

  • Deployment 를 생성하면 ReplicaSetPod 또한 생성됨
  • Pod, ReplicaSet 을 단독으로 생성하는 것보다 Deployment 관리하에 자동생성이 권장됨
  • 변경사항에 대한 다양한 방식의 업데이트 방법을 제공한다

📝 yaml 파일로 리소스 정의

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]
profile
What a Beautiful World~ 🌏

0개의 댓글