Kubernetes 롤아웃: SLO에 따라 승격하고, 'pods are Ready'에 의존하지 않기

발행: (2026년 3월 15일 오전 12:57 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

Readiness는 로컬 신호이고, Production 영향은 전역적입니다.

Pods는 Ready 상태이면서도 SLO 윈도우가 이미 소진되고 있을 수 있습니다.

The failure chain

  • Rollout이 트래픽을 빠르게 전환합니다.
  • 새로운 Pods가 HPA가 반응하기 전에 포화됩니다.
  • HPA 스크레이프 윈도우는 최소 15–30 seconds 입니다.
  • P95 지연 시간이 상승합니다.
  • 오류 비율이 증가합니다.
  • SLI가 악화됩니다.

모든 것이 정상적으로 보이지만, 오류 예산은 조용히 소모되고 있습니다.

Why “pods are Ready” lies to you

  • Ready는 컨테이너가 시작되어 헬스 체크를 통과했음을 의미할 뿐입니다.
  • P95 지연 시간, 오류 비율, 혹은 SLO 조각이 유지되고 있는지에 대해서는 아무것도 알려주지 않습니다.
  • 메트릭이 너무 거칠어 캐너리가 “green” 상태에 머물 수 있습니다.
  • 라벨도 없고, 슬라이스도 없으면 블라스트 반경이 보이지 않습니다.

Three resolvers

1. Pre‑scale before the first canary step

  • 트래픽이 전환되기 전에 복제본 수를 늘립니다.
  • HPA가 포화된 상태가 아니라 안전한 기준선에서 따라잡을 수 있습니다.

2. Match step interval to your HPA scale‑up window

  • 기본 안정화 윈도우는 3 minutes 입니다.
  • 다음 명령으로 확인하세요:
kubectl get hpa -o yaml
  • 해당 윈도우가 닫히기 전에 승격하는 것은 눈을 가리고 승격하는 것입니다.

3. Gate steps on SLI health

  • Argo RolloutsAnalysisRun을 연결해 오류 비율과 P95 지연 시간이 SLO 범위 내에 있는지 확인한 뒤에만 승격합니다.
  • SLI가 아직 회복 중이라면 승격이 대기합니다.

The rule

캐너리가 고정된 윈도우 동안 중요한 SLO 슬라이스를 유지할 때만 승격합니다.
그 윈도우를 벗어나면 자동 롤백이 트리거됩니다.

Rollout 속도와 자동 스케일러 반응 시간은 별도로 조정됩니다. 이 간극이 바로 오류 예산이 누군가 페이지를 호출하기 전에 소진되는 지점입니다.

Illustration of the failure chain and mitigation steps

Deep dive

현재 여러분의 Rollout 단계 간격은 어떻게 설정되어 있나요?

0 조회
Back to Blog

관련 글

더 보기 »

트라비고

Gemini와 함께 말하는 속도만큼 빠르게 여행하세요! 라이브 에이전트가 몰입형 스토리텔링 및 3D 내비게이션과 만나는 곳. 이 프로젝트는 Gemini Live Ag...에 진입하기 위해 만들어졌습니다.