초기 구성
- deployment
- service
- configMap
- VirtualService

1차 sync

❯ curl local.dev/new-podtest
{
"hostname": "podinfo-new-6b654964dd-dq6cm",
"version": "6.1.4",
}%
2차 sync

after sync
- 기존 deployment와 service는 out-of-sync
- deployment: replicas 값이 0으로 조정됨
- service: selector가
primary를 향함
- canary 리소스를 통해 생성된 내용들 포함

❯ curl local.dev/new-podtest
{
"hostname": "podinfo-new-primary-685446df78-w4ssb",
"version": "6.1.4",
}%
3차 sync
- kustomization.yaml에서 이미지 버전 변경 커밋
images:
- name: ghcr.io/stefanprodan/podinfo
newTag: "6.1.3"
- 기존 deployment에서 pod 생성 (새로운 이미지 버전)

- 기존 deploy에 변경점이 있기에 canary analysis 수행됨
❯ k get canary -w
NAME STATUS WEIGHT LASTTRANSITIONTIME
podinfo-new Initialized 0 2022-05-22T11:49:50Z
podinfo-new Progressing 0 2022-05-22T11:55:10Z
podinfo-new Progressing 10 2022-05-22T11:55:20Z
podinfo-new Progressing 20 2022-05-22T11:55:30Z
podinfo-new Progressing 30 2022-05-22T11:55:40Z
podinfo-new Progressing 40 2022-05-22T11:55:50Z
podinfo-new Progressing 50 2022-05-22T11:56:00Z
podinfo-new Promoting 0 2022-05-22T11:56:10Z
podinfo-new Finalising 0 2022-05-22T11:56:50Z
podinfo-new Succeeded 0 2022-05-22T11:57:00Z
- 수행 이후 다시 2차 sync 결과와 같아짐. (primary에 pod가 올라오고 기존은 0개)

❯ curl local.dev/new-podtest
{
"hostname": "podinfo-new-primary-5fcb8f54b8-kr9mn",
"version": "6.1.3",
}%
auto-sync
- 커밋했을 때 변경사항이 있을 때 반영 됨.
- 수동으로 sync 버튼을 누르지 않는 한, auto-sync로 인해 기존 deploy에서 pod가 올라오진 않음.