Search

Deployment

복제된 (replicated) 애플리케이션(Pod)를 관리하는 오브젝트
롤링 업데이트나 롤백 등을 구현하는 리소스
Deployment 배포 전략
recreate : 모든 파드 삭제 후 다시 파드 생성 (다운 타임 발생)
rollingupdate : 하나씩 업데이트
maxUnavailable : 업데이트 진행 중 사용 불가능한 최대 Pod 수
maxSurge : 업데이트 진행 중 원래 replicas 수를 초과할 수 있는 최대 Pod 수
deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: <Deployment Name> namespace: <Namespace> labels: app: worker spec: replicas: 2 selector: matchLabels: app: worker template: metadata: labels: app: worker spec: containers: - name: <Container Name> image: <Image> ports: - containerPort: 80
YAML
복사
Health Check
apiVersion: apps/v1 kind: Deployment metadata: name: dev-dpm namespace: dev-ns labels: app: dev spec: replicas: 3 selector: matchLabels: app: dev strategy: type: Recreate template: metadata: labels: app: dev spec: containers: - name: dev-cnt image: <image> ports: - containerPort: <Port> startupProbe: httpGet: path: /healthcheck port: 8080 initialDelaySeconds: 0 periodSeconds: 5 timeoutSeconds: 10 failureThreshold: 12 successThreshold: 1 readinessProbe: httpGet: path: /healthcheck port: 8080 initialDelaySeconds: 0 periodSeconds: 5 timeoutSeconds: 10 failureThreshold: 3 successThreshold: 1 livenessProbe: httpGet: path: /healthcheck port: 8080 initialDelaySeconds: 0 periodSeconds: 5 timeoutSeconds: 10 failureThreshold: 6 successThreshold: 1 lifecycle: preStop: exec: command: ["/bin/sh","-c","sleep 30"] terminationGracePeriodSeconds: 10
YAML
복사
ReCreate
apiVersion: apps/v1 kind: Deployment metadata: name: dev-dpm namespace: dev-ns labels: app: dev spec: replicas: 3 selector: matchLabels: app: dev strategy: type: Recreate template: metadata: labels: app: dev spec: containers: - name: dev-cnt image: <image> ports: - containerPort: <Port>
YAML
복사
Rolling Update
apiVersion: apps/v1 kind: Deployment metadata: name: dev-dpm namespace: dev-ns spec: replicas: 2 selector: matchLabels: app: dev strategy: type: RollingUpdate rollingUpdate: maxSurge: 50% maxUnavailable: 50% template: metadata: labels: app: dev spec: containers: - name: dev-cnt image: <image> ports: - containerPort: <Port>
YAML
복사