lifecycle

    [k8s] Graceful Shutdown을 위한 preStop, terminationGracePeriodSeconds 설정

    [k8s] Graceful Shutdown을 위한 preStop, terminationGracePeriodSeconds 설정

    Graceful Shutdown (우아한 종료) 이란? 현재 들어온 요청을 모두 수행하고 우아하게 종료된다는 개념이다. 수행 중이던 요청을 미처 처리하지 못하고 종료되면 리소스가 서버에 좀비처럼 남아있거나 데이터 손실을 일으킬 수 있다. kube-proxy나 Ingress controller 등은 엔드포인트 변경에 대해 알림을 받기까지 다소 시간이 걸립니다. 따라서 트래픽은 종료된 것으로 표시가 되어도 여전히 포드(Pod)로 트래픽이 흐를 수 있습니다. 앱은 새로운 요청 수락을 중지되고 모든 연결이 종료되면 종료돼야 합니다. 이를 위해서 앱 spec에서 'lifecycle.preStop'을 설정하는 것을 고려합니다. Pod가 종료 전 데이터베이스와의 연결을 종료하고 트랜잭션을 완료하여 종료해야 하는 상황..