오후 3시에 주문 API 새 버전을 배포했는데 20분째 롤아웃이 끝나지 않습니다. 새 파드는 Running이지만 READY가 0/1이고 재시작 횟수는 0입니다. 예전 파드 두 개가 트래픽을 계속 받아서 사용자 영향은 아직 없지만, 다음 배포가 줄줄이 밀리고 있습니다. 이번 배포에는 앱 코드와 함께 차트의 probe 설정을 정리한 커밋이 들어 있습니다. 개발자는 새 코드에 버그가 있다며 앱 로그를 뒤지고 있습니다. 스테이징에서는 코드만 확인하고 probe 설정은 따로 검증하지 않았습니다.
롤링 업데이트가 끝나지 않음: 새 파드가 Running인데 READY 0/1
오후 3시에 주문 API 새 버전을 배포했는데 20분째 롤아웃이 끝나지 않습니다.
시나리오
단서
NAME READY STATUS RESTARTS AGE orders-5c9f7d6b8-7xk2m 0/1 Running 0 21m orders-7b6c5d4f9-a1b2c 1/1 Running 0 3d orders-7b6c5d4f9-d3e4f 1/1 Running 0 3d $ kubectl rollout status deploy/orders Waiting for deployment "orders" rollout to finish: 1 out of 3 new replicas have been updated...
Warning Unhealthy kubelet Readiness probe failed: HTTP probe failed with statuscode: 404
readinessProbe:
httpGet:
path: /healtz
port: 8080
$ kubectl exec orders-5c9f7d6b8-7xk2m -- curl -s -o /dev/null -w '%{http_code}' localhost:8080/healthz
200과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.
구독하면 이어서 볼 수 있어요
이 문제의 전체 시나리오와 점검 체크리스트, 복구 순서, 모범 풀이는 Pro 구독에서 열립니다.
먼저 볼 것
- readiness 실패와 liveness 실패가 파드에 주는 영향의 차이
- 앱 상태와 probe 설정을 따로 확인하기
점검 체크리스트
- kubectl describe pod 의 Unhealthy 이벤트(상태 코드)
- probe에 설정된 경로·포트와 앱이 실제로 여는 경로 비교
- kubectl exec 로 파드 안에서 그 경로를 직접 호출
복구와 재발 방지
같이 보면 좋은 질문
현장에서 본 비슷한 케이스
0/10