초보를 위한 쿠버네티스 안내서 - Deployment

yshjft·2023년 1월 26일
0

Deployment

  • Deployment는 쿠버네티스에서 가장 널리 사용되는 오브젝트
  • ReplicaSet을 이용하여 Pod을 업데이트하고 이력을 관리하여 롤백하거나 특정 버전(revision)으로 돌아갈 수 있다.

Deployment 생성

apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo-deploy
spec:
  replicas: 4
  selector:
    matchLabels:
      app: echo
      tier: app
  template:
    metadata:
      labels:
        app: echo
        tier: app
    spec:
      containers:
        - name: echo
          image: ghcr.io/subicura/echo:v1

Pod 업데이트

  • 새로운 버전의 Pod을 생성하고 기존 Pod을 제거한다.
  • Deployment Controller, Replicaset Controller, Scheduler 모두 독립적으로 작동한다.

버전관리

Deploymnet는 변경된 상태를 기록합니다.

# 히스토리 확인
kubectl rollout history deploy/echo-deploy

# revision 1 히스토리 상세 확인
kubectl rollout history deploy/echo-deploy --revision=1

# 바로 전으로 롤백
kubectl rollout undo deploy/echo-deploy

# 특정 버전으로 롤백
kubectl rollout undo deploy/echo-deploy --to-revision=2

배포 전략 설정

  • 원하는 배포 전략을 설정할 수 있다.(ex. Rolling Update)
  • maxSurge: Pod의 최대 활성화 개수
  • maxUnavailable: Pod의 최대 비활성화 개수

포트 관련

참고

쿠버네티스 안내서

profile
꾸준히 나아가자 🐢

0개의 댓글