◦ Google、IBM、Lyftの3社共同開発により、2017年5月にOSS化 ◦ KubernetesのPodにプロキシ(Envoy)をサイドカーコンテナとして注入し、 サービスのコード変更を伴わずにサービスメッシュを実現可能 8 Data Plane App A (container) envoy proxy Istiod Control Plane App B (container) envoy proxy Pod Pod envoy proxy Pod IngressGateway envoy proxy Pod EgressGateway Ingress Traffic Egress Traffic
◦ サイドカーとして注入されるEnvoyプロキシ(正確にはEnvoyプロキシの拡張)の コンテナから構成される ◦ このプロキシがマイクロサービス間の通信を仲介・制御する • Control Plane ◦ Envoyプロキシコンテナのサービスへの注入や設定伝搬を司る 9 Data Plane App A (container) envoy proxy Istiod Control Plane App B (container) envoy proxy Pod Pod envoy proxy Pod IngressGateway envoy proxy Pod EgressGateway Ingress Traffic Egress Traffic
バックエンドサービスはNginxを用いて静的コンテンツを返すモックを準備 • 負荷試験クライアントはGatling 22 Data Plane Mock by Nginx (External A Service) A Service envoy proxy Control Plane Gatling Istiod Mock by Nginx (Internal B Service) Mock by Nginx (External B Service) envoy proxy
このフェーズを終えた上で、サービス通貫したテストに進める 23 Data Plane Mock by Nginx (External A Service) A Service envoy proxy Control Plane Gatling Istiod Mock by Nginx (Internal B Service) envoy proxy Mock by Nginx (External B Service) 接続元 接続先
1. 何らかの原因でEnvoyプロキシの 注入に失敗している 2. 何らかの原因でEnvoyプロキシへの 設定検証に失敗し、設定伝搬できない これらは、以下のメトリクスにより捕捉可能 30 メトリクス 説明 istio.sidecar_injection.failure_total Envoyプロキシの注入に失敗した回数 istio.galley.validation.failed Envoyプロキシへの設定検証に失敗した回数 Data Plane A Service envoy proxy Control Plane Istiod B Service envoy proxy C Service envoy proxy 2. 設定検証・伝搬失敗 1. 注入失敗