쿠버네티스에서 Deployment의 롤링 업데이트가 진행되는 도중 일부 트래픽이 5xx를 반환하는 현상이 보고됐습니다. readinessProbe, terminationGracePeriod, preStop 훅이 이 문제와 어떻게 연관되는지 설명해주세요.
힌트 · 엔드포인트에서 파드가 제거되는 시점과 SIGTERM 처리·연결 드레이닝의 타이밍 불일치 관점에서 접근하세요.
모범답안
Deployment 롤링 업데이트 중 5xx 오류는 주로 새 파드 준비 완료 시점과 기존 파드 트래픽 종료 시점 간의 타이밍 불일치로 발생합니다.
readinessProbe는 파드가 트래픽을 받을 준비가 되었는지 판단합니다. 이 프로브가 통과해야 서비스가 해당 파드로 트래픽을 보내기 시작합니다. 만약 새 파드의 readinessProbe가 너무 빨리 통과하거나, 기존 파드가 아직 트래픽을 처리 중인데 엔드포인트에서 제거되면 문제가 발생할 수 있습니다.
terminationGracePeriodSeconds와 preStopHook은 파드 종료 시점에 중요합니다. terminationGracePeriodSeconds는 파드가 종료 신호(SIGTERM)를 받은 후 정상적으로 종료될 시간을 제공합니다. preStopHook은 이 기간 동안 실행되어, 파드가 더 이상 새 요청을 받지 않도록 하고 기존 요청을 안전하게 처리하도록 할 수 있습니다.
이 둘이 제대로 설정되지 않으면, SIGTERM을 받은 기존 파드가 아직 요청을 처리 중인데 엔드포인트에서 제거되어 5xx 오류를 반환하거나, 새 파드가 완전히 준비되지 않은 상태에서 트래픽을 받게 되어 오류가 발생할 수 있습니다. 즉, readinessProbe로 새 파드의 준비 상태를, terminationGracePeriodSeconds와 preStopHook으로 기존 파드의 안전한 종료를 보장하는 것이 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 DevOps / CI·CD 면접 질문
- 동일한 Dockerfile로 빌드했는데도 CI 환경마다 빌드 캐시가 거의 적중하지 않아 빌드 시간이 길어지는 상황입니다. 레이어 캐시가 무효화되는 원인과, 캐시 적중률을 높이기 위한 Dockerfile 작성 전략을 설명해주세요.
- 멀티 스테이지 빌드(multi-stage build)는 어떤 문제를 해결하며, 빌더 스테이지와 런타임 스테이지를 분리할 때 이미지 크기와 보안 측면에서 어떤 이점이 있는지 설명해주세요.
- 컨테이너는 호스트 커널을 공유하는데, namespace와 cgroup이 각각 어떤 격리와 자원 제어를 담당하는지, 그리고 이것이 VM 대비 격리 수준이 약하다고 평가되는 이유를 설명해주세요.
- 쿠버네티스의 Service 타입 중 ClusterIP 트래픽이 실제 파드까지 전달되는 과정을 kube-proxy(iptables 또는 IPVS 모드) 관점에서 설명하고, 두 모드의 성능 차이가 발생하는 이유를 설명해주세요.