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
- メイントラフィックエントリーポイント