- [C181] 디플로이먼트가 지원하는 배포 전략에서 블루/그린이나 카나리는 찾아볼 수 없습니다. 어떻게 블루/그린이나 카나리 배포를 할 수 있을까요?
블루/그린 배포
디플로이먼트를 버전을 각각 생성하여 서비스의 셀렉터를 이용하여 버전을 적용
🟦 Deployment Blue
Deployment Blue에 연결하여 외부에서 접근할 수 있는 service 생성
selector에 app:v1을 지정하여 Deployment:v1 과 연결
연결된 것을 확인
🟩 Deployment Green
v2의 deployment를 생성(green)
service.yaml 파일을 replica v2와 연결하기 위해 app을 v2로 변경 후 업데이트
서비스에 연결된 pod가 변경된 것을 확인할 수 있다
카나리(canary) 배포
> 라벨은 다양하게 활용할 수 있음,
> 라벨을 이용하면 쿠버네티스에서도 카나리 배포를 할 수 있음
카나리 배포를 위해서 우선 2개의 디플로이먼트를 생성
v1-deployment.yaml
v2-deployment.yaml
앞의 yaml파일을 이용해서 버전이 다른 2개의 포드를 실행
kubectl apply -f v1-deployment.yaml
kubectl apply -f v2-deployment.yaml
이제 이 2개의 디플로이먼트에 접근하는 하나의 서비스를 실행

kubectl apply -f simple-service.yaml를 이용하여 서비스를 실행
여러개의 디플로이먼트를 하나의 접속 주소로 묶어서 서비스하고 있다는걸 확인할 수 있음

stable버전의 포드와 canary버전의 포드를 동시에 서비스할 수 있음
이 상태에서 canary버전이 정상작동하는지 확인하고 만약 제대로 작동하지 않는다면 디플로이먼트를 지우거나 디플로이먼트의 replicas를 0으로 조정해서 서비스에서 제외할 수 있음
좀 더 많은 사용자에게 테스트를 해보고 싶다면 canary버전의 replicas 개수를 늘려서 보다 많은 요청을 canary버전에서 받게할 수도 있음
그리고 canary버전이 정상작동한다면 stable에 있는 컨테이너의 이미지를 업데이트해서 전체 서비스에 적용할 수 있음