Istio 2편: Envoy config로 해부하는 Ambient mode
2
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

이 게시물은 Istio Ambient mode에서 Gateway 요청이 Envoy config를 통해 목적지 Pod까지 전달되는 과정을 Envoy의 기본 구조(Listener→Route→Cluster→Endpoint)와 함께 추적합니다. Gateway Envoy는 RDS로 http.443 route config를 받아 Virtual Host 매칭으로 outbound|8080||service.cluster.local 클러스터를 선택합니다. 같은 클러스터라도 destination Pod의 mesh 참여 상태에 따라 endpoint 단계의 transport_socket_match와 endpoint 메타데이터가 달라지며, out-of-mesh는 RawBuffer로 Pod IP에 직접 연결되고 in-mesh는 InternalUpstreamTransport 및 connect_originate internal listener를 경유합니다. Waypoint가 설정된 경우에는 original_dst 메타데이터에 waypoint 키가 추가되어 endpoint_id와 workload 메타데이터가 waypoint를 가리키고, 트래픽은 Gateway→HBONE→waypoint→HBONE→최종 Pod 순서로 흐릅니다. connect_originate internal listener에서는 tcp_proxy의 tunneling_config으로 HTTP/2 CONNECT를 만들고 UpstreamTlsContext로 ALPN h2 및 SPIFFE 기반 mTLS를 적용해 HBONE 터널을 구현합니다. 이어 ztunnel의 트래픽 가로채기는 istio-cni가 Pod 네트워크 네임스페이스에 iptables REDIRECT 규칙을 넣고, ztunnel이 Pod 내부 socket을 생성해(크로스 네임스페이스 소켓) HBONE 캡슐을 디캡슐레이션하는 방식으로 동작함을 설명합니다.

연관 게시글