service mesh를 사용한다면, service에 sidecar proxy가 필요하다.
보통은 해당 요소를 envoy를 사용한다.
sidecar proxy의 동작을 알기 위해서는 envoy에 대해서 알아야 할 거 같다.
개념 및 특징부터 차근차근 알아가 보자.
envoy란?
- MSA 환경에서 Service를 위해 설계된 고성능 분산 c++프록시
- 큰 규모의 현대 MSA을 위한 L7(application layer) proxy이자 communication bus
- Service Mesh 환경에 초점을 맞추고 있다
- 여러 Service Mesh tool에서 envoy를 dataplane을 위한 sidecar로 채택하고 있다
주요 특징
- HTTP, TCP, gRPC 프로토콜 지원
- TLS client certification 지원
- HTTP L7 라우팅 지원
- URL 기반 라우팅, 버퍼링, 서버 간 부하 분산량 조절 등
- HTTP2 지원
- 다양한 로드밸런싱 기능 제공
- Auto retry, circuit breaker, 부하량 제한 등
- 다양한 통계 추적 기능 제공 및 서비스에 대한 다양한 가시성 (visibility)을 제공
- Dynamic configuration 지원
관련 공식 문서