2.6.2. マルチテナントインストール
アップストリームの Istio は、シングルテナントのアプローチを採用しています。一方、Red Hat OpenShift Service Mesh は、クラスター内で複数の独立したコントロールプレーンをサポートします。Red Hat OpenShift Service Mesh は、マルチテナント Operator を使用してコントロールプレーンのライフサイクルを管理します。
Red Hat OpenShift Service Mesh は、マルチテナントコントロールプレーンをデフォルトでインストールします。Service Mesh にアクセスできるプロジェクトを指定し、Service Mesh を他のコントロールプレーンインスタンスから分離します。
2.6.2.1. マルチテナンシーとクラスター全体のインストールの比較 リンクのコピーリンクがクリップボードにコピーされました!
マルチテナントインストールとクラスター全体のインストールの主な違いは、istod で使用される権限の範囲です。コンポーネントでは、クラスタースコープのロールベースのアクセス制御 (RBAC) リソース ClusterRoleBinding が使用されなくなりました。
ServiceMeshMemberRoll members リストのすべてのプロジェクトには、コントロールプレーンのデプロイメントに関連付けられた各サービスアカウントの RoleBinding があり、各コントロールプレーンのデプロイメントはそれらのメンバープロジェクトのみを監視します。各メンバープロジェクトには maistra.io/member-of ラベルが追加されており、member-of の値はコントロールプレーンのインストールが含まれるプロジェクトになります。
Red Hat OpenShift Service Mesh は、各メンバープロジェクトに NetworkPolicy リソースを作成し、他のメンバーとコントロールプレーンからすべての Pod への Ingress を許可します。これにより、メンバープロジェクト自身、コントロールプレーン、および他のメンバープロジェクト間のネットワークアクセスが確保されるように設定されます。Service Mesh からメンバーを削除すると、この NetworkPolicy リソースがプロジェクトから削除されます。
また、これにより Ingress がメンバープロジェクトのみに制限されます。メンバー以外のプロジェクトの Ingress が必要な場合は、NetworkPolicy を作成してそのトラフィックを許可する必要があります。