목록전체 글 (289)
Ssoon

🚀 WebAssembly로 Istio 데이터 플레인 확장하기Istio의 데이터 플레인을 확장하는 가장 강력한 방법 중 하나는 WebAssembly(WASM) 를 사용해 커스텀 Envoy 필터를 만드는 것입니다.WASM의 기본 개념과 Envoy에서 WASM을 활용해 동적으로 필터를 추가하는 방법을 설명합니다. 기존 필터 설정이나 Lua 스크립트와 달리, WASM은 다양한 언어로 작성된 커스텀 필터를 런타임에 배포할 수 있는 유연성을 제공합니다.WebAssembly를 사용하면 커스텀 Envoy 필터를 동적으로 배포해 Istio 데이터 플레인을 확장할 수 있습니다.🛠️ WebAssembly란?WASM의 기본 개념WebAssembly(WASM)는 다양한 프로그래밍 언어로 작성된 코드를 이식 가능한 바이너리 ..

🚀 Lua로 Istio 데이터 플레인 확장하기🛠️ Lua 필터란?Lua와 Envoy의 통합Lua는 가볍고 임베디드 시스템에 적합한 스크립팅 언어로, Envoy에서는 LuaJIT 가상 머신을 통해 실행됩니다. Envoy의 Lua 필터를 사용하면 요청(envoy_on_request) 또는 응답(envoy_on_response) 경로에서 헤더 조작, 본문 검사 같은 커스텀 로직을 구현할 수 있습니다.요청 본문을 검사하면 프록시가 본문을 메모리에 완전히 버퍼링할 수 있어 성능에 영향을 줄 수 있습니다. Lua 스크립트는 EnvoyFilter 리소스를 통해 Envoy의 HttpConnectionManager(HCM) 필터 체인에 삽입됩니다. 이를 통해 기존 필터로는 구현할 수 없는 유연한 확장이 가능합니다.L..

🚀 Istio와 Envoy로 Rate-Limiting 구현하기🛠️ Rate-Limiting이란?Rate-Limiting의 필요성Rate-Limiting은 특정 서비스나 워크로드에 대한 요청 수를 제한해 시스템 과부하를 방지하고 안정성을 유지하는 기술입니다. Istio에서는 Envoy의 HTTP 필터를 활용해 외부 Rate-Limit 서버를 호출함으로써 이 기능을 구현할 수 있습니다. 이를 통해 서비스의 모든 복제본(replica)이 동일한 Rate-Limit 정책을 따르도록 보장합니다.Envoy는 네트워크 필터, 로컬 Rate-Limiting, 글로벌 Rate-Limiting 등 여러 방식으로 Rate-Limiting을 지원하지만, 여기서는 글로벌 Rate-Limiting에 초점을 맞춥니다. 글로벌 ..

🚀 Istio의 EnvoyFilter로 데이터 플레인 확장하기🛠️ EnvoyFilter 리소스란?EnvoyFilter의 역할Istio는 VirtualService, DestinationRule, AuthorizationPolicy 같은 고수준 API를 통해 네트워킹과 보안 설정을 추상화합니다. 하지만 이러한 API로는 Envoy 프록시의 모든 기능을 다룰 수 없으며, 특정 필터나 설정을 직접 조정해야 하는 경우가 있습니다. 이때 EnvoyFilter 리소스를 사용하면 Envoy의 listeners, routes, clusters, filters 등을 직접 설정할 수 있습니다.EnvoyFilter는 고급 사용자를 위한 break glass 솔루션으로, 강력하지만 주의가 필요합니다. Envoy의 API는..