목록 보기
Istio 3-1편: 503과 Half-open Connection
데브옵스

Istio 3-1편: 503과 Half-open Connection

채널톡
채널톡
2026년 6월 26일

두줄요약

Istio Ambient mode에서 워크로드 재시작 시 간헐적 503이 발생한 원인을 추적했습니다. 오래된 HBONE connection 재사용과 ztunnel의 graceful close 부재가 핵심이었고, reset retry로 증상을 완화했습니다.

문제 상황

  • Istio Ambient mode에서 워크로드 롤아웃·재시작 시 간헐적으로 503 응답 발생
  • dev 환경에서 더 자주 재현되며, gateway는 503만 전달하고 실제 발생 지점은 waypoint
  • ztunnel과 istio-cni에는 뚜렷한 이상 로그가 없어 원인 추적이 어려움

원인 분석

  • destination Pod 종료 후에도 waypoint Envoy가 이전 IP:Port 기준 HTTP/2 HBONE connection을 재사용
  • 새 Pod가 같은 IP를 재사용하면 handshake 없이 application data가 들어가고, 새 Pod의 TCP stack이 RST로 응답
  • ztunnel이 Pod 종료 시 connection을 graceful하게 닫지 않아 stale connection이 남는 구조

해결 방법

  • Envoy debug 로그, destination Pod pcap, waypoint socket 상태를 함께 확인해 connection 재사용과 stale 상태를 검증
  • 근본적으로는 connection key에 Pod UID 같은 식별자를 포함하거나, 종료 시 connection 정리 신호를 전달하는 방향이 필요
  • 즉시 대응으로 reset에 대한 retry를 추가해 503 전파를 완화

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...