Skip to main content
duksoo.dev
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Istio Ingress Gateway 무중단 롤아웃: 게이트웨이 수백 개를 재시작해도 손님은 못 느낀다

인프라에서 가장 무서운 재시작은 “모든 트래픽이 지나가는 길목"을 재시작하는 것이다. 앱 Pod 하나가 잠깐 흔들리면 그 앱만 아프지만, ingress gateway가 흔들리면 그 뒤에 있는 서비스 전부가 동시에 아프다. gateway는 전형적인 SPOF(단일 장애점, single point of failure)다.

그런데 어느 날 밤, prod 클러스터에서 gateway를 포함한 워크로드 10종(Pod 수백 개)을 하나씩 껐다 켰는데 사용자 화면에는 5xx가 사실상 0이었다. 앞 글에서 앱 Pod의 우아한 종료를 다뤘다면, 이 글은 그 한 단계 위, 모든 트래픽이 지나가는 ingress gateway 계층을 무중단으로 롤아웃하는 방법을 정리한다. 핵심은 하나다. 끄는 순서를 강제하는 것.

Read full post gdoc_arrow_right_alt

배포할 때마다 502가 터진다면, Pod 종료 전략을 의심하라

Kubernetes에서 애플리케이션을 운영할 때, 결국 핵심은 Pod의 시작과 끝이다. 얼마나 따뜻하게 시작하고, 얼마나 우아하게 끝내느냐. Probe와 Warmup으로 시작을 제어하고, Graceful Shutdown으로 끝을 제어한다. 이 두 가지가 안정적인 서비스 운영의 기반이다.

Probe 설정은 이전 글에서 다뤘다. 이번에는 에 대한 이야기다. 배포할 때마다 502 에러가 발생하는 서비스가 있었다. 원인은 Pod 종료 전략의 부재였다. terminationGracePeriodSecondspreStop hook을 적용해서 해결한 과정을 공유한다.

증상

Spring Boot API 서버를 배포할 때마다 간헐적으로 502 에러가 발생했다.

Read full post gdoc_arrow_right_alt