목록 보기
Istio 3-2편: Partially Enrolled Pod와 Untaint Controller
데브옵스

Istio 3-2편: Partially Enrolled Pod와 Untaint Controller

채널톡
채널톡
2026년 7월 2일

두줄요약

Ambient mode에서 Pod은 Ready인데 mesh 트래픽이 실패하는 partially enrolled 문제를 다뤘습니다. istio-cni 준비 전에는 일반 Pod이 스케줄되지 않도록 startup taint와 untaint-controller를 활용했습니다.

문제 상황

  • Ambient mode 롤아웃 중 특정 노드의 신규 Pod이 Running 및 readiness 통과에도 mesh 트래픽을 받지 못하는 현상
  • client 측 Envoy 에러로 보이는 upstream connect failure, connection termination 관찰
  • Kubernetes 관점 정상과 mesh dataplane 관점 미준비가 어긋나는 partially enrolled 상태

원인 분석

  • istio-cni와 ztunnel 같은 node-local 컴포넌트 준비가 Pod 스케줄보다 늦어지는 race condition
  • redirection rule은 일부 적용됐지만 ztunnel registration이 완료되지 않은 pending 상태 발생
  • startup taint가 없어 CNI 미준비 노드에 일반 workload Pod이 먼저 올라가는 구조

해결 방법

  • cni.istio.io/not-ready startup taint를 노드에 걸고, istio-cni Ready 후 untaint-controller로 제거
  • Karpenter NodePool 등의 인프라 레벨에서 startupTaints 설정
  • pilot.taint.enabled와 PILOT_ENABLE_NODE_UNTAINT_CONTROLLERS 같은 Istio 설정 함께 점검

댓글 0

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

댓글을 불러오는 중...