Istioは、そのアーキテクチャにおいて「Data Plane」と「Control Plane」という2つの主要なコンポーネントを持っています。これらのコンポーネントは、Istioが提供する機能やサービス間の通信を制御・管理するための要素です。
- Data Plane(データプレーン):
Data Planeは、実際のネットワークトラフィックを処理する部分です。 IstioのData Planeは、Envoyという高性能なプロキシを使用して実装されています。 これらのEnvoyプロキシは、各サービスのPodに「sidecar」として配置され、サービス間のすべてのネットワーク通信を中継します。 Envoyは、トラフィックのルーティング、ロードバランシング、認証、認可、レートリミット、トレーシングなどの機能を提供します。 Data Planeは、Control Planeからの設定やポリシーを受け取り、それに基づいてトラフィックを処理します。
- Control Plane(コントロールプレーン):
Control Planeは、Istioの設定とポリシーの管理を担当する部分です。 これには、Istioの主要なコンポーネントであるIstiodが含まれます。 Istiodは、Envoyプロキシの設定を中央で管理し、それをData Planeに配布します。 Control Planeは、サービスディスカバリ、設定管理、証明書の発行・回転、認証・認可ポリシーの定義などの機能を提供します。 また、Control Planeは、ユーザーが定義したトラフィックルールやセキュリティポリシーをData PlaneのEnvoyプロキシに適用します。 簡単に言えば、Control Planeは「何をすべきか」を決定し、Data Planeはその指示に従って「実際に操作を行う」部分です。この分離により、Istioは柔軟性とスケーラビリティを維持しながら、マイクロサービスの通信を効果的に管理することができます。