Troubleshooting

지원 버전: Istio 1.28 마지막 업데이트: 2026년 2월 19일

이 문서는 Istio를 사용할 때 가장 자주 발생하는 에러와 해결 방법을 정리합니다.

목차

파드 종료 시 연결 에러

문제 설명

파드가 종료될 때 Envoy Sidecar가 애플리케이션보다 먼저 종료되어 연결 에러가 발생합니다.

증상:

발생 원인

spinner

근본 원인:

  1. Envoy와 애플리케이션이 동시에 SIGTERM을 받음

  2. Envoy가 애플리케이션보다 빨리 종료

  3. 애플리케이션은 아직 요청을 처리 중이지만 Envoy가 이미 종료되어 연결 실패

해결 방법

방법 1: Envoy Proxy preStop Hook 설정 (권장)

Istio Proxy 컨테이너에 preStop Hook을 설정하여 활성 연결이 모두 종료될 때까지 대기하도록 합니다.

동작 방식:

spinner

방법 2: Pod Annotation으로 Envoy 종료 동작 제어

Pod 단위로 Envoy의 종료 동작을 세밀하게 제어할 수 있습니다.

설정 설명:

  • holdApplicationUntilProxyStarts: true: 애플리케이션보다 Envoy가 먼저 시작

  • terminationDrainDuration: 30s: Envoy 종료 시 30초 동안 드레인

  • terminationGracePeriodSeconds: 60: 전체 파드 종료 유예 시간

방법 3: 전역 설정 (IstioOperator)

클러스터 전체에 일관된 종료 정책을 적용합니다.

권장 설정:

  • terminationDrainDuration: 30초 (활성 연결 드레인 시간)

  • terminationGracePeriodSeconds: 60초 (SIGKILL 전 유예 시간)

  • Envoy가 활성 연결을 확인하고 graceful shutdown 수행

검증 방법

모범 사례

체크리스트:

  • Envoy terminationDrainDuration 설정 (가장 중요!)

  • holdApplicationUntilProxyStarts: true (시작 순서 보장)

  • terminationGracePeriodSeconds 충분히 설정 (최소 60초)

  • ✅ ReadinessProbe 설정 (종료 시 빠르게 unhealthy 전환)

  • ✅ 애플리케이션 graceful shutdown 구현 (선택사항)

  • ✅ 모니터링 및 로깅 설정

핵심:

  • 애플리케이션 컨테이너에 sleep을 추가하지 마세요!

  • Envoy가 드레인 모드로 graceful shutdown하도록 설정하세요.

Sidecar 주입 문제

문제 1: Sidecar가 주입되지 않음

증상:

원인 및 해결:

1. Namespace 레이블 누락

2. Pod Annotation으로 주입 비활성화됨

해결:

3. Istio Sidecar Injector 동작 확인

문제 2: Sidecar 리소스 부족

증상:

해결:

mTLS 연결 실패

문제 설명

증상:

원인 1: PeerAuthentication 모드 불일치

spinner

해결:

원인 2: DestinationRule과 PeerAuthentication 충돌

해결:

디버깅 명령어

VirtualService 라우팅 실패

문제 1: 트래픽이 라우팅되지 않음

증상:

원인 및 해결:

잘못된 host 매칭

해결:

문제 2: Subset not found

증상:

원인:

해결:

디버깅

Gateway 설정 문제

문제 1: Gateway에 트래픽이 도달하지 않음

증상:

원인 및 해결:

1. Gateway Service 확인

2. Gateway와 VirtualService 연결 확인

해결:

문제 2: HTTPS 인증서 오류

증상:

해결:

메모리 및 성능 문제

문제 1: Envoy 메모리 사용량 증가

증상:

원인:

  • 너무 많은 리스너/클러스터 생성

  • 큰 ConfigMap/Secret

  • 메모리 누수

해결:

문제 2: 높은 지연 시간

증상:

  • P99 latency > 1초

  • Timeout 에러 빈번

해결:

인증서 만료

문제 설명

증상:

원인:

  • Istio CA 인증서 만료 (기본 10년)

  • 워크로드 인증서 만료 (기본 24시간, 자동 갱신)

해결:

DNS 해석 실패

문제 설명

증상:

해결:

Envoy 초기화 타임아웃

문제 설명

증상:

해결:

디버깅 도구

istioctl 명령어

Envoy Admin API

일반적인 로그 확인

참고 자료

공식 문서

관련 문서


마지막 업데이트: 2025년 11월 27일

마지막 업데이트