2.7. マルチテナントクラスター内の Operator


Operator Lifecycle Manager (OLM) のデフォルトの動作は、Operator のインストール時に簡素化することを目的としています。ただし、この動作は、特にマルチテナントクラスターでは柔軟性に欠ける場合があります。OpenShift Dedicated クラスター上の複数のテナントが Operator を使用するには、OLM のデフォルトの動作では、管理者が Operator を All namespaces モードでインストールする必要がありますが、これは最小特権の原則に違反すると考えられます。

以下のシナリオを考慮して、環境と要件に最適な Operator インストールワークフローを決定してください。

2.7.1. デフォルトの Operator インストールモードと動作

管理者として Web コンソールを使用して Operator をインストールする場合、通常、Operator の機能に応じて、インストールモードに 2 つの選択肢があります。

単一の namespace
選択した単一の namespace に Operator をインストールし、Operator が要求するすべての権限をその namespace で使用できるようにします。
すべての namespace
デフォルトの openshift-operators namespace で Operator をインストールし、クラスターのすべての namespace を監視し、Operator をこれらの namespace に対して利用可能にします。Operator が要求するすべてのアクセス許可をすべての namespace で使用できるようにします。場合によっては、Operator の作成者はメタデータを定義して、その Operator が提案する namespace の 2 番目のオプションをユーザーに提供できます。

この選択は、影響を受ける namespace のユーザーが、namespace でのロールに応じて、所有するカスタムリソース (CR) を活用できる Operators API にアクセスできることも意味します。

  • namespace-admin および namespace-edit ロールは、Operator API の読み取り/書き込みが可能です。つまり、Operator API を使用できます。
  • namespace-view ロールは、その Operator の CR オブジェクトを読み取ることができます。

Single namespace モードの場合、Operator 自体が選択した namespace にインストールされるため、その Pod とサービスアカウントもそこに配置されます。All namespaces モードの場合、Operator の権限はすべて自動的にクラスターロールに昇格されます。つまり、Operator はすべての namespace でこれらの権限を持ちます。

2.7.2. マルチテナントクラスターの推奨ソリューション

Multinamespace インストールモードは存在しますが、サポートされている Operator はほとんどありません。標準 All namespacesSingle namespace インストールモードの中間的なソリューションとして、次のワークフローを使用して、テナントごとに 1 つずつ、同じ Operator の複数のインスタンスをインストールできます。

  1. テナントの namespace とは別のテナント Operator の namespace を作成します。これは、プロジェクトを作成することで実行できます。
  2. テナントの namespace のみを対象とするテナント Operator の Operator グループを作成します。
  3. テナント Operator namespace に Operator をインストールします。

その結果、Operator はテナントの Operator namespace に存在し、テナントの namespace を監視しますが、Operator の Pod もそのサービスアカウントも、テナントによって表示または使用できません。

このソリューションは、より優れたテナント分離、リソースの使用を犠牲にした最小特権の原則、および制約が確実に満たされるようにするための追加のオーケストレーションを提供します。詳細な手順は、「マルチテナントクラスター用の Operator の複数インスタンスの準備」を参照してください。

制限および考慮事項

このソリューションは、次の制約が満たされている場合にのみ機能します。

  • 同じ Operator のすべてのインスタンスは、同じバージョンである必要があります。
  • Operator は、他の Operator に依存することはできません。
  • Operator は CRD 変換 Webhook を出荷できません。
重要

同じクラスターで同じ Operator の異なるバージョンを使用することはできません。最終的に、Operator の別のインスタンスのインストールは、以下の条件を満たす場合にブロックされます。

  • インスタンスは Operator の最新バージョンではありません。
  • インスタンスは、クラスターですでに使用されている新しいリビジョンに含まれる情報またはバージョンを欠いている CRD の古いリビジョンを出荷します。

2.7.3. Operator のコロケーションと Operator グループ

Operator Lifecycle Manager (OLM) は、同じ namespace にインストールされている OLM 管理 Operator を処理します。つまり、それらの Subscription リソースは、関連する Operator として同じ namespace に配置されます。それらが実際には関連していなくても、いずれかが更新されると、OLM はバージョンや更新ポリシーなどの状態を考慮します。

Operator のコロケーションと Operator グループの効果的な使用の詳細は、Operator Lifecycle Manager (OLM) マルチテナント対応と Operator のコロケーション を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.