개발/Kubernetes

K8S - Deployment

잇(IT) 2022. 7. 28. 11:11
728x90

- 제일 최상위 개념 / 디플로이먼트는 레플리카셋의 상위 개념으로 볼 수 있다. 레플리카셋을 생성하는 디플로이먼트를 정의할 수 있고, 배포 작업을 좀 더 세분화(롤링 업데이트 등) 하여 조작할 수 있는 기능을 가지고 있다.

vi dep.yml
apiVersion: apps/v1
kind: Deployment 
metadata: 
  name: dep-nginx  
  labels:
    app: nginx1
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-a
  template:
    metadata:
      labels:
        app: nginx-a 
    spec:
    containers:
    - name: nginx-pod 
      image: nginx:1.14.2
      ports:
      - containerPort: 80

kubectl get deployment

kubectl get replicaset

kubectl get pod


무중단 배포

 

1. 롤링 업데이트

 1.1 loadbalancer에서 서비스 하고 있던 POD의 일부를 loadbalaner에서 제외한 다음 업데이트 수행 후 다시 loadbalancer 참여

 1.2 점진적 업데이트

 

2. 블루/그린 업데이트

 2.1 블루 : 구버전, 그린 : 신버전

 2.2 Loadbalancer 참여하는 POD 절반을 먼저 업데이트 (load에서 제외)

 

3. 카나리 업데이트

 3.1 시험용으로 일부만 업데이트 후 정상 동작하면 점진적 전체 업데이트를 수행

 

1과 3의 차이 1은 제외를 하고 3은 제외를 하지  않기 때문에 구버전 신버전 둘 다 접속이 가능하다.


 

728x90

'개발 > Kubernetes' 카테고리의 다른 글

K8S - Wordpress, MySQL (yml 파일) 생성 후 배포  (0) 2022.07.27
K8S - Replicaset  (0) 2022.07.27
K8S - Deployment, Replicas, pods 생성  (0) 2022.07.26
K8S - pod describe 정보  (0) 2022.07.26
K8S - yml 파일을 이용한 pod 생성  (0) 2022.07.25