Envoy 에 대해
클라우드 네이티브 마이크로서비스 배포를 위해 구축된 고성능 C++ 프록시.
Envoy는 서비스 메시 아키텍처를 위한 범용 데이터 플레인으로 작동하며, 고급 라우팅, 로드 밸런싱 및 관찰 가능성 기능을 제공합니다. Lyft에서 만들어졌으며 현재 Airbnb, Netflix, Uber와 같은 회사에서 사용하는 CNCF 졸업 프로젝트입니다.
주요 기능
- ⚡ 고성능: 최소한의 메모리 사용량을 가진 C++ 구현
- 🔀 프로토콜 독립적: HTTP/1.1, HTTP/2, HTTP/3, gRPC 및 TCP의 기본 지원
- 🎯 지능형 라우팅: 경로 기반 라우팅, 트래픽 분할 및 헤더 조작
- 🔄 복원력 패턴: 자동 재시도, 서킷 브레이커 및 타임아웃 관리
- 📊 풍부한 메트릭: 내장 통계, 분산 추적 및 액세스 로깅
- 🔌 동적 구성: 재시작 없이 런타임 업데이트를 위한 xDS API
- 🛡️ 보안 우선: TLS 종료, 상호 TLS, 속도 제한 및 인증
- 🌍 다중 프로토콜: WebSocket, MongoDB, Redis, Postgres 와이어 프로토콜
구성 개요
이 스택에는 기본 정적 구성이 포함되어 있습니다. 사용 사례에 맞게 다음을 수행해야 합니다:
envoy.yaml
을 편집하여 라우팅 규칙 정의- 백엔드 서비스를 위한 업스트림 클러스터 구성
- 특정 포트 및 프로토콜에 대한 리스너 설정
- 인증, 속도 제한 또는 기타 기능을 위한 필터 추가
기본 설정은 다음을 제공합니다:
- 모니터링 및 디버깅을 위한 포트 9901의 관리 대시보드
- 포트 10000의 예제 HTTP 리스너
- 샘플 업스트림 서비스 정의
액세스 포인트
- 관리 콘솔:
http://envoy.stack.localhost:9901
- 구성, 통계 및 상태 보기 - 프록시 엔드포인트:
http://envoy.stack.localhost:10000
- 주요 트래픽 진입점