목록 보기
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 전파를 완화

다음 읽기

#Istio 주제를 이어서 읽기

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

Istio Ambient mode에서 Pod IP 재사용과 stale connection 재사용이 겹쳐 간헐적 503이 발생했습니다. 로그와 pcap, socket을 교차 검증하고 reset retry로 증상을 완화했습니다.

채널톡
채널톡
데브옵스

댓글 0개

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

댓글을 불러오는 중...