[flagger] ArgoCD 연동성

zzery·2022년 5월 22일

일지(2022~2024)

목록 보기
14/25

초기 구성

  • deployment
  • service
  • configMap
  • VirtualService

1차 sync

  • replicas = 3

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

2차 sync

  • canary 리소스도 포함하여 배포

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"  # 6.1.4 -> 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 # 기존 deploy에 파드가 생성되는 시점부터
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가 올라오진 않음.
profile
이 블로그의 모든 글은 수제로 짜여져 있습니다...

0개의 댓글