title: "Istio overview: Extensibility, Etc."
description: |
대표적 Service Mesh 제품인 Istio에 대한 overview로 Kubernetes를 배경으로 설명한다.
Istio overview: Architecture, Traffic Management, Istio overview: Observability 및 Istio overview: Security에 이어, 마지막으로 Istio의 확장성과 타 Service Mesh 제품에 대해 논한다.
cleanUrl: /sw-engineer/istio-overview-4
ogImage: "<https://anyflower.notion.site/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F7570d2fc-66b1-4e23-bb3c-ff7b56842b0d%2F14674e3e-f8a7-497e-8c46-000c96c7db41%2FUntitled.png?table=block&id=741d082b-8ab1-4af0-9594-4c51aa94a235&spaceId=7570d2fc-66b1-4e23-bb3c-ff7b56842b0d&width=1420&userId=&cache=v2>"
floatFirstTOC: right
TLS traffic에 대한 Envoy filter chain의 구조. Envoy filter chain 에서 자세히 논한다.
대표적 Service Mesh 제품인 Istio에 대한 overview로 Kubernetes를 배경으로 설명한다.
Istio overview: Architecture, Traffic Management, Istio overview: Observability 및 Istio overview: Security 에 이어, 마지막으로 Istio의 확장성과 타 Service Mesh 제품에 대해 논한다.
참조한 문서는 글 내부 및 References 에 달았다.
Istio에서의 확장은 Istio Proxy에 대한 확장을 의미하는데, 대부분의 Istio proxy 타 기능과 마찬가지로 Envoy에 크게 의존한다. Istio의 역할은 사실 상 Envoy 기능에 대한 interfaces 제공으로, EnvoyFilter
및 WasmPlugin
Istio resource가 이들 interface에 해당한다.
Life of a Request — envoy 1.31.0-dev-b8d86c documentation
Istio의 feature 확장은 Envoy filter를 통해 이루어진다. Envoy에는 다수의 filter의 연결로 이루어진 Filter chain이 있어, 각 filter는 request / response에 대한 변환을 담당한다.
맨 앞의 그림은 상기 링크 - Life of a Request에 담긴 다수의 그림 중 filter chain 부분을 압축한 것으로, 각 connection 별 filter chain이 주어져 request/response (종류) 별로 서로 독립적인 처리가 이루어진다.
Envoy filter는 크게 Listener Filter
, Network Filter
로 나뉘고, Network Filter 중 하나인 HCM(HTTP Connection Manager)
는 filter chain 마지막에 위치하여, 자체적으로 다수의 sub-filter, 즉 HTTP filter
chain을 가진다. 그리고 HTTP filter
chain의 마지막은 Router Filter
로 끝난다.