목록전체 글 (300)
Ssoon

🚀 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는..

🚀 Istio로 애플리케이션 네트워킹 강화하기🛠️ Envoy: Istio의 핵심 구성 요소Envoy란 무엇인가?Istio의 서비스 메쉬에서 Envoy는 핵심적인 역할을 합니다. Envoy는 애플리케이션 인스턴스와 함께 배포되는 서비스 프록시로, 서비스 간 요청 경로에 위치하여 네트워크 트래픽을 관리합니다. 예를 들어, 서비스 A가 서비스 B에 요청을 보낼 때, Envoy는 이 요청을 중개하며 라우팅, 로깅, 인증 같은 기능을 처리합니다.Envoy는 기본적으로 많은 기능을 제공하지만, 조직의 특정 요구사항을 충족하려면 추가적인 커스터마이제이션이 필요할 수 있습니다. 예를 들어, 특정 헤더를 추가하거나, 외부 인증 서비스와 통합하는 등의 작업이 이에 해당합니다.Envoy는 Istio의 서비스 프록시로, ..