본문 바로가기

CNCF Projects/Envoy3

Envoy architecture - Listener + Listener/Network Filter Envoy architecture - Listener + Listener/Network Filter Introduction Thread model에 이어서 Listener에 대해 알아보도록 하겠습니다. 이번 글에서도 공식문서를 번역하고, 실 구현체를 이해해보도록 하겠습니다. Listener Envoy 설정에서 single process에서 임의의 수의 리스너를 구성하는 것을 지원합니다. 일반적으로 설정된 listener의 수와 상관없이 single Envoy를 머신별로 실행하는 것을 추천합니다. 이는 더 쉬운 연산과 통계의 단일 원천이 가능하게 합니다. Envoy는 TCP와 UDP 리스너 둘 다 지원합니다. TCP 각 리스너는 독립적으로 filter_chain과 함께 구성됩니다. 각 filter chac.. 2023. 11. 22.
Envoy architecture - Introduction + Threading model Envoy architecture - Introduction + Threading model Introduction envoy architecture에서는 공식문서 (Envoy architecture overview)와 envoy 레포지토리 (v1.28), lyft 엔지니어셨던 Matt Klein님이 작성해 주신 envoy 블로그 글을 번역, 참고해서 architecture를 이해해 볼 예정입니다. envoy 레포 구조 envoy의 레포지토리 구성은 REPO_LAYOUT.md에 정리되어 있습니다. architecture를 이해하기 위해서는 아래 폴더들에 집중합시다. api/: envoy의 dataplane API envoy/: core Envoy를 위한 "Public" 인터페이스 헤더들. 100% abs.. 2023. 11. 20.
Envoy proxy란? 이번 글에서는 istio를 쓰다 보면 항상 보이는 envoy에 대해 알아보겠습니다. 본 블로그의 글은 v1.28을 기준으로 합니다. envoy Lift사에서 최초 제작한 CNCF의 graduated project중 하나로 가벼운 프록시 서버 역할을 합니다. 여러 Service Mesh에서 envoy를 dataplane을 위한 sidecar로 채택하고 있으며, 예시로 istio가 해당 방식으로 동작합니다. (*현재 istio 기본은 envoy를 sidecar로 붙이고 있지만, v1.20기준 알파 버전인 ambient 모드로 configure시 daemonset으로 동작합니다.) envoy를 사이드카로 붙이면 hop이 늘어난다는 단점이 있지만, NginX와 비교하면 성능도 준수하고 복잡해진 MSA 간에 투명.. 2023. 11. 16.