メッシュの外側に Istio コントロールプレーンを展開する
Istio 向けの新しいデプロイメントモデルです。
概要
さまざまなサービスメッシュのユーザーやベンダーと業務に携わってきた経験から、一般的なサービスメッシュには重要なペルソナが 3 つあると考えるようになりました。
サービスメッシュ制御プレーンのインストールとアップグレードを管理するメッシュオペレーター。
メッシュプラットフォームを所有し、サービス所有者がサービスメッシュを採用するための総合的な戦略と実装を決定する、プラットフォームの所有者と呼ばれることが多いメッシュ管理者。
メッシュ内で 1 つ以上のサービスを所有する、サービスの所有者と呼ばれることが多いメッシュユーザー。
バージョン 1.7 より前は、Istio では制御プレーンをメッシュ内の プライマリークラスタ のいずれかで実行する必要があり、その結果メッシュオペレーターとメッシュ管理者の間に分離が生じていました。Istio 1.7 では新しい 外部制御プレーン デプロイメントモデルが導入され、メッシュオペレーターが個別の外部クラスタにメッシュ制御プレーンをインストールして管理できるようになりました。このデプロイメントモデルでは、メッシュオペレーターとメッシュ管理者を明確に分離できます。これにより、Istio メッシュオペレーターはメッシュ管理者の Istio 制御プレーンを実行できるようになり、メッシュ管理者は、制御プレーンのインストールや管理を心配することなく、制御プレーンの構成をコントロールできます。このモデルはメッシュユーザーには透過的です。
外部制御プレーンデプロイメントモデル
デフォルトインストールプロファイル を使用して Istio をインストールすると、下図のように、単一クラスタに Istiod 制御プレーンがインストールされます。
Istio 1.7 の新しいデプロイメント モデルを使用すると、次の図に示すように、Istiod をメッシュ サービスとは別の外部クラスターで実行できます。外部コントロール プレーン クラスターはメッシュ オペレーターが所有し、メッシュ管理者はメッシュにデプロイされたサービスを実行するクラスターを所有します。メッシュ管理者は、外部コントロール プレーン クラスターにアクセスできません。メッシュ オペレーターは、このステップ バイ ステップ ガイド に従って、詳細をさらに探求できます。(注: Istio メンテナーによるいくつかの内部ディスカッションでは、このモデルは以前「中央 Istiod」と呼ばれていました。)
メッシュ管理者は、外部クラスター内で実行される同じ Istiod によって管理される複数のクラスターにサービス メッシュを拡張できます。この場合、メッシュ クラスターのいずれもプライマリ クラスターではありません。これらはすべてリモート クラスターです。ただし、そのうちの 1 つはサービスを実行することに加えて、Istio 構成クラスターとしても機能します。外部コントロール プレーンは、config cluster
から Istio 構成を読み取り、Istiod は次の図に示すように、config クラスターと他のリモート クラスターの両方で実行されるデータ プレーンに構成をプッシュします。
メッシュ オペレーターはこのデプロイメント モデルをさらに拡張して、複数の Istiod コントロール プレーンを実行する外部クラスターから複数の Istio コントロール プレーンを管理できます
この場合、各 Istiod はそれぞれのリモート クラスターを管理します。メッシュ オペレーターは、外部コントロール プレーン クラスターに独自の Istio メッシュをインストールし、リモート クラスターから各 Istiod コントロール プレーンに対応するトラフィックをルーティングする istio-ingress
ゲートウェイを構成することもできます。これについては、これらのステップをご覧ください。
結論
外部コントロール プレーン デプロイメント モデルを使用すると、Istio で運用上の専門知識を持つメッシュ オペレーターによって Istio コントロール プレーンを実行および管理でき、サービス メッシュ制御とデータ プレーンを明確に分離できます。メッシュ オペレーターは、独自のクラスターや他の環境でコントロール プレーンを実行し、メッシュ管理者にサービスとしてコントロール プレーンを提供できます。メッシュ オペレーターは、単一クラスター内で複数の Istiod コントロール プレーンを実行し、独自の Istio メッシュをデプロイし、istio-ingress
ゲートウェイを使用してこれらの Istiod コントロール プレーンへのアクセスを制御できます。ここで提供される例を通じて、メッシュ オペレーターはさまざまな実装の選択肢を検討し、自分にとって最適なものを選択できます。
この新しいモデルでは、メッシュ管理者が制御プレーン自体を操作せずにメッシュ設定に集中できるようになることで、メッシュ管理の複雑さが軽減されます。メッシュ管理者は引き続きメッシュ全体で設定と Istio リソースを構成できますが、外部の制御プレーン クラスタにアクセスする必要はありません。メッシュ ユーザーは変更を加えずにサービス メッシュを操作し続けることができます。