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