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 에서 자세히 논한다.

TLS traffic에 대한 Envoy filter chain의 구조. Envoy filter chain 에서 자세히 논한다.

Introduction

대표적 Service Mesh 제품인 Istio에 대한 overview로 Kubernetes를 배경으로 설명한다.

Istio overview: Architecture, Traffic Management, Istio overview: ObservabilityIstio overview: Security 에 이어, 마지막으로 Istio의 확장성과 타 Service Mesh 제품에 대해 논한다.

참조한 문서는 글 내부 및 References 에 달았다.

Summary

Istio의 확장성에 관하여

Istio에서의 확장은 Istio Proxy에 대한 확장을 의미하는데, 대부분의 Istio proxy 타 기능과 마찬가지로 Envoy에 크게 의존한다. Istio의 역할은 사실 상 Envoy 기능에 대한 interfaces 제공으로, EnvoyFilterWasmPlugin Istio resource가 이들 interface에 해당한다.

Envoy Filter

Envoy filter chain

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 로 끝난다.