2.4.6. マルチテナント対応と Operator のコロケーション
Operator が namespace を共有する場合、Operator Lifecycle Manager (OLM)はこれらを関連として扱い、それらが更新時の動作に影響を与えます。
2.4.6.1. namespace 内での Operators コロケーション リンクのコピーリンクがクリップボードにコピーされました!
Operator Lifecycle Manager (OLM)は、関連する Operator と同じ namespace にインストールされている OLM が管理する Operator を処理します。Operator が実際に関連していなくても、いずれかが更新されると、OLM はバージョンや更新ポリシーなどの状態を考慮します。
このデフォルトの動作は、次の 2 つの方法で現れます。
-
保留中の更新の
InstallPlanリソースには、同じ namespace にある他のすべての Operators のClusterServiceVersion(CSV) リソースが含まれます。 - 同じ namespace 内のすべての Operators は、同じ更新ポリシーを共有します。たとえば、1 つの Operator が手動更新に設定されている場合は、他のすべての Operators の更新ポリシーも手動に設定されます。
これらのシナリオは、次の問題につながる可能性があります。
- 更新された Operator だけでなく、より多くのリソースが定義されているため、Operator 更新のインストール計画を推論するのは難しくなります。
- ネームスペース内の一部の Operator を自動的に更新し、他の Operator を手動で更新することは不可能になります。これは、クラスター管理者にとって一般的な要望です。
OpenShift Container Platform Web コンソールを使用して Operator をインストールすると、デフォルトの動作により、All namespaces インストールモードをサポートする Operator がデフォルトの openshift-operators グローバル namespace にインストールされるため、これらの問題は通常表面化します。
クラスター管理者は、次のワークフローを使用して、このデフォルトの動作を手動でバイパスできます。
- Operator のインストール用の namespace を作成します。
- すべての namespace を監視する Operator グループである、カスタム グローバル Operator グループ を作成します。この Operator グループを作成した namespace に関連付けることで、インストール namespace がグローバル namespace になり、そこにインストールされた Operators がすべての namespace で使用できるようになります。
- 必要な Operator をインストール namespace にインストールします。
Operator に依存関係がある場合、依存関係は事前に作成された namespace に自動的にインストールされます。その結果、依存関係 Operators が同じ更新ポリシーと共有インストールプランを持つことが有効になります。詳細な手順は、「カスタム namespace へのグローバル Operators のインストール」を参照してください。