본문 바로가기
software engineering/k8s

Deployments - Creating a Deployment

by _블로그 2021. 2. 10.

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

 

Deployment Pods, ReplicaSets 대한 선언적 업데이트를 제공한다. yaml 파일로 선언적으로 pods, rs를 제어할 수 있다는 얘기.

Use Case

  • ReplicaSet 만들 Deployment 생성
  • 새로운 ReplicaSet 생성하여 이관
  • 이전 Deployment 롤백
  • Scale up
  • Deployment 일시 중지. ? 서비스 중지란 얘긴가?
  • rollout에 문제 발생 시 Deployment status 이용하기
  • 불필요 ReplicaSets 삭제

Creating a Deployment

3개의 nginx pods 띄우는 Deployment.

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 

pod 선택은 .metadata.labels.app 이 매치되는 pod으로 한다. 물론 더 복잡한 rule도 가능.

 

1. 아래 명령으로 Deployment 생성

kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml

2. kubectl get deployments 로 생성 확인

3. rollout 상태 확인은 kubectl rollout status deployment/nginx-deployment

Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
deployment "nginx-deployment" successfully rolled out

 

LIST

댓글