Istio Sidecar Injectio이란

Istio에서 사이드카(sidecar) 인젝션은 워크로드(주로 Kubernetes 환경에서 Pod)가 생성될 때 Envoy 프록시를 Pod 내부에 자동 또는 수동으로 주입하여, Istio 서비스 메시에 참여할 수 있도록 만드는 핵심 메커니즘입니다. 이를 통해 트래픽을 중앙 집중적으로 제어하고 보안/정책/관찰성 등을 일관되게 적용할 수 있습니다.

Istio 사이드카 인젝션의 원리

Mutating Admission Webhook을 통한 자동 주입

  1. 사용자가 kubectl apply -f <Pod/Deployment YAML> 과 같은 명령으로 리소스를 생성
  2. API 서버가 Admission Controller 체인을 거치면서 Istio의 mutating webhook에게 요청 전달
  3. Istio 사이드카 인젝션 로직이 Pod Spec을 수정하여 Envoy 사이드카와 Init Container 등을 추가
  4. 수정된 Pod Spec이 최종적으로 etcd에 저장되고 스케줄링되어 실제로 Pod가 생성됨

Envoy 사이드카의 역할

Istio 사이드카 인젝션 방법

자동 사이드카 인젝션(Auto Injection)

  1. 네임스페이스에 라벨 추가

특정 네임스페이스의 모든 Pod에 사이드카가 자동으로 주입되도록 설정하려면, 해당 네임스페이스에 istio-injection=enabled 라벨을 추가합니다.