Envoyとは?
- Nginxと類似した機能を持つOSS
- マイクロサービスに対応するために、サービス間のネットワーク制御をライブラリとしてではなく、ネットワークプロキシとして提供するために開発された
- アーキテクチャ
- アプリケーションと同じホスト上にEnvoyを構築
- Kubernetesなどでは、Envoyを各アプリケーションのサイドカーコンテナとしてデプロイ
- サイドカーとは?
- Kubernetesポッド内のアプリケーションコンテナと連動する独立したコンテナです。アプリケーション補完機能を保持
- 機能:SSL/mTLS、トラフィックルーティング、高可用性など
- サイドカーとは?
- 各サービスは別のサービスを直接参照するのではなく、Envoyを経由してアクセスすることになる
- Envoyはアプリケーションからネットワークの切り離しを実現
Envoyが提供する機能
- ネットワークレベルのフィルタ
- gRPCサポート
- gRPCリクエスト/レスポンスのルーティングおよび負荷分散の基盤として使用する必要のあるHTTP/2機能全てをサポート
- サービスディスカバリーとダイナミックコンフィグレーション