목록전체 글 (294)
Ssoon

🚀 Istio로 VM과 컨테이너를 연결하는 방법🖥️ 왜 모든 워크로드를 Kubernetes로 옮기지 않을까?Kubernetes 클러스터에서 모든 워크로드를 실행하는 것이 이상적이지만, 현실적으로는 몇 가지 제약 때문에 VM에서 실행해야 하는 경우가 있습니다.규제 준수와 온프레미스 요구사항일부 기업은 데이터 보안이나 규제 준수 때문에 워크로드를 온프레미스 환경에서 실행해야 합니다. 하지만 Kubernetes 클러스터를 설정하고 운영할 전문 지식이 부족할 수 있습니다.컨테이너화의 복잡성애플리케이션을 컨테이너화하려면 종종 재설계가 필요합니다. 일부 앱은 의존성 충돌(dependency hell)이나 업데이트가 어려운 레거시 의존성을 가지고 있어 컨테이너화가 쉽지 않습니다.VM에 특화된 의존성특정 워크로드는..

🚀 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에 초점을 맞춥니다. 글로벌 ..