API 카나리 배포가 Argo CD에서 Healthy로 표시되고 자동 승격까지 됐는데, 승격 직후 오류율이 급증해 긴급 롤백했습니다. 새 버전은 기동 뒤 DB 연결 풀을 채우는 30초 동안 요청을 받으면 500을 냅니다. 차트에는 이를 막는 readinessProbe가 분명히 있습니다. 이 팀은 카나리용 라벨과 이미지를 바꾸려고 Helm post-renderer(kustomize 패치)를 씁니다. 개발자들은 앱 코드 버그라며 로그를 뒤지고 있습니다.
카나리가 승인됐는데 새 버전이 500을 쏟아냄: 배포된 매니페스트에 readiness probe가 없음
API 카나리 배포가 Argo CD에서 Healthy로 표시되고 자동 승격까지 됐는데, 승격 직후 오류율이 급증해 긴급 롤백했습니다.
시나리오
단서
$ helm template api ./chart | grep -c readinessProbe 1 $ kubectl get deploy api-canary -o yaml | grep -c readinessProbe 0
- op: replace
path: /spec/template/spec/containers/0
value:
name: api
image: registry.acme.dev/api:5.2.0-canary
env:
- { name: CANARY, value: "true" }00:00:01 INFO starting api 5.2.0 00:00:02 ERROR GET /v1/orders 500 connection pool not ready 00:00:31 INFO connection pool ready (40 connections)
과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.
구독하면 이어서 볼 수 있어요
이 문제의 전체 시나리오와 점검 체크리스트, 복구 순서, 모범 풀이는 Pro 구독에서 열립니다.
먼저 볼 것
- 템플릿 결과와 실제로 적용된 매니페스트는 다를 수 있다
- Healthy 판정이 무엇을 근거로 하는지
점검 체크리스트
- helm template 결과와 클러스터의 실제 매니페스트 비교
- post-renderer 패치가 무엇을 바꾸는지(replace 범위)
- 파드가 Ready가 된 시점과 앱이 준비된 시점 비교
복구와 재발 방지
같이 보면 좋은 질문
현장에서 본 비슷한 케이스
0/10