1.2. マルチクラスターエンジン Operator を使用したクラスターライフサイクルについて
Kubernetes Operator のマルチクラスターエンジンは、Red Hat OpenShift Container Platform および Red Hat Advanced Cluster Management ハブクラスターにクラスター管理機能を提供するクラスターライフサイクル Operator です。Red Hat Advanced Cluster Management をインストールした場合、multicluster engine Operator は自動的にインストールされるため、インストールする必要はありません。
サポート情報の詳細は、Kubernetes オペレータ用マルチクラスターエンジン 2.3 サポートマトリックス および以下のドキュメントを参照してください。
続行するには、マルチクラスターエンジン Operator を使用したクラスターライフサイクルについて で、残りのクラスターライフスタイルドキュメントを参照してください。
1.2.1. 要件および推奨事項 リンクのコピーリンクがクリップボードにコピーされました!
マルチクラスターエンジン Operator をインストールする前に、次のシステム設定要件と設定を確認してください。
重要: multicluster engine Operator は、2.5 より前の Red Hat Advanced Cluster Management for Kubernetes がインストールされていないクラスターにインストールする必要があります。バージョン 2.5 以降で Red Hat Advanced Cluster Management を使用している場合、Kubernetes 用のマルチクラスターエンジンはすでにクラスターにインストールされています。
Kubernetes オペレータ用マルチクラスターエンジン 2.3 サポートマトリックス で、サポートされているブラウザーと機能に関する重要な情報を参照してください。
1.2.2. コンソールの概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform コンソールプラグインは OpenShift Container Platform 4.10 Web コンソールで利用可能であり、統合することができます。この機能を使用するには、コンソールプラグインを有効にしておく必要があります。Infrastructure および Credentials ナビゲーション項目の一部のコンソール機能は、multicluster engine Operator によって表示されます。Red Hat Advanced Cluster Management をインストールすると、より多くのコンソール機能が表示されます。
注記:プラグインが有効になっている OpenShift Container Platform 4.10 の場合は、ドロップダウンメニューから All Clusters を選択することにより、クラスタースイッチャーから OpenShift Container Platform コンソール内で Red Hat Advanced Cluster Management にアクセスできます。
- プラグインを無効にするには、OpenShift Container Platform コンソールの Administrator パースペクティブにいることを確認してください。
- ナビゲーションで Administration を探し、Cluster Settings をクリックし、続いて Configuration タブをクリックします。
-
Configuration resources のリストから、
operator.openshift.ioAPI グループが含まれる Console リソースをクリックします。この API グループには、Web コンソールのクラスター全体の設定が含まれています。 -
Console plug-ins タブをクリックします。
mceプラグインがリスト表示されます。注記: Red Hat Advanced Cluster Management がインストールされている場合は、acmとしても表示されます。 - テーブルからプラグインのステータスを変更します。しばらくすると、コンソールを更新するように求められます。
1.2.3. multicluster engine Operator のロールベースのアクセス制御 リンクのコピーリンクがクリップボードにコピーされました!
RBAC はコンソールレベルと API レベルで検証されます。コンソール内のアクションは、ユーザーのアクセスロールの権限に基づいて有効化/無効化できます。製品の特定ライフサイクルの RBAC の詳細は、以下のセクションを参照してください。
1.2.3.1. ロールの概要 リンクのコピーリンクがクリップボードにコピーされました!
クラスター別の製品リソースと、スコープに namespace が指定されている製品リソースがあります。アクセス制御に一貫性を持たせるため、クラスターのロールバインディングと、namespace のロールバインディングをユーザーに適用する必要があります。サポートされている次のロール定義の表リストを表示します。
1.2.3.1.1. ロール定義表 リンクのコピーリンクがクリップボードにコピーされました!
| ロール | 定義 |
|---|---|
|
|
これは OpenShift Container Platform のデフォルトのロールです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin、edit、および view は OpenShift Container Platform のデフォルトロールです。これらのロールに対して namespace に限定されたバインディングが指定されているユーザーは、特定の namespace 内の |
重要:
- ユーザーは OpenShift Container Platform からプロジェクトを作成できます。これにより、namespace の管理者ロール権限が付与されます。
-
ユーザーにクラスターへのロールアクセスがない場合、クラスター名は表示されません。クラスター名は、
-の記号で表示されます。
RBAC はコンソールレベルと API レベルで検証されます。コンソール内のアクションは、ユーザーのアクセスロールの権限に基づいて有効化/無効化できます。製品の特定ライフサイクルの RBAC の詳細は、以下のセクションを参照してください。
1.2.3.2. クラスターライフサイクル RBAC リンクのコピーリンクがクリップボードにコピーされました!
以下のクラスターライフサイクル RBAC 操作を確認してください。
すべてのマネージドクラスターのクラスターロールバインドを作成および管理します。たとえば、以下のコマンドを入力してクラスターロール
open-cluster-management:cluster-manager-adminにバインドするクラスターロールを作成します。oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin --user=<username>
oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin --user=<username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このロールはスーパーユーザーであるため、すべてのリソースとアクションにアクセスできます。このロールを使用すると、クラスターレベルの
managedclusterリソース、マネージドクラスターを管理するリソースの namespace、namespace 内のリソースを作成できます。権限エラーを回避するために、ロールの関連付けが必要な ID のusernameを追加する必要がある場合があります。以下のコマンドを実行して、
cluster-nameという名前のマネージドクラスターのクラスターロールバインドを管理します。oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name> --user=<username>
oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name> --user=<username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このロールを使用すると、クラスターレベルの
managedclusterリソースに読み取り/書き込みアクセスができるようになります。managedclusterはクラスターレベルのリソースで、namespace レベルのリソースではないので、このロールが必要です。以下のコマンドを入力して、クラスターロール
adminにバインドする namespace ロールを作成します。oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin --user=<username>
oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin --user=<username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このロールでは、マネージドクラスターの namespace 内にあるリソースに対して読み取り/書き込みアクセスができるようになります。
open-cluster-management:view:<cluster-name>クラスターロールのクラスターロールバインドを作成して、cluster-nameという名前のマネージドクラスターを表示します。次のコマンドを入力します。oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name> --user=<username>
oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name> --user=<username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このロールを使用すると、クラスターレベルの
managedclusterリソースに読み取りアクセスができるようになります。これは、managedclusterがクラスタースコープのリソースであるために必要です。以下のコマンドを入力して、クラスターロール
viewにバインドする namespace ロールを作成します。oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view --user=<username>
oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view --user=<username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このロールでは、マネージドクラスターの namespace 内にあるリソースに対して読み取り専用アクセスができるようになります。
以下のコマンドを入力して、アクセス可能なマネージドクラスターの一覧を表示します。
oc get managedclusters.clusterview.open-cluster-management.io
oc get managedclusters.clusterview.open-cluster-management.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、クラスター管理者権限なしで、管理者およびユーザーが使用できます。
以下のコマンドを入力して、アクセス可能なマネージドクラスターセットの一覧を表示します。
oc get managedclustersets.clusterview.open-cluster-management.io
oc get managedclustersets.clusterview.open-cluster-management.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、クラスター管理者権限なしで、管理者およびユーザーが使用できます。
1.2.3.2.1. クラスタープール RBAC リンクのコピーリンクがクリップボードにコピーされました!
以下のクラスタープール RBAC 操作を確認します。
クラスター管理者は、クラスタープールのプロビジョニングクラスターを使用して、マネージドクラスターセットを作成し、ロールをグループに追加して管理者権限をロールに付与します。以下の例を参照してください。
以下のコマンドを使用して、
server-foundation-clustersetマネージドクラスターセットにadmin権限を付与します。oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-admin:server-foundation-clusterset server-foundation-team-admin
oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-admin:server-foundation-clusterset server-foundation-team-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、
server-foundation-clustersetマネージドクラスターセットにview権限を付与します。oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-view:server-foundation-clusterset server-foundation-team-user
oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-view:server-foundation-clusterset server-foundation-team-userCopy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスタープールの namespace (
server-foundation-clusterpool) を作成します。ロール権限を付与するには、以下の例を参照してください。以下のコマンドを実行して、
server-foundation-team-adminのserver-foundation-clusterpoolにadmin権限を付与します。oc adm new-project server-foundation-clusterpool oc adm policy add-role-to-group admin server-foundation-team-admin --namespace server-foundation-clusterpool
oc adm new-project server-foundation-clusterpool oc adm policy add-role-to-group admin server-foundation-team-admin --namespace server-foundation-clusterpoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow
チーム管理者として、クラスタープール namespace にクラスターセットラベル
cluster.open-cluster-management.io/clusterset=server-foundation-clustersetを使用してocp46-aws-clusterpoolという名前のクラスタープールを作成します。-
server-foundation-webhookは、クラスタープールにクラスターセットラベルがあるかどうか、またユーザーにクラスターセットのクラスタープールを作成する権限があるかどうかを確認します。 -
server-foundation-controllerは、server-foundation-team-userのserver-foundation-clusterpoolnamespace にview権限を付与します。
-
クラスタープールが作成されると、クラスタープールは
clusterdeploymentを作成します。詳細は、以下を参照してください。-
server-foundation-controllerは、server-foundation-team-adminのclusterdeploymentnamespace にadmin権限を付与します。 server-foundation-controllerは、server-foundation-team-userのclusterdeploymentnamespace にview権限を付与します。注記:
team-adminおよびteam-userには、clusterpool、clusterdeployment、およびclusterclaimへのadmin権限があります。
-
1.2.3.2.2. クラスターライフサイクルのコンソールおよび API RBAC の表 リンクのコピーリンクがクリップボードにコピーされました!
クラスターライフサイクルの以下のコンソールおよび API RBAC の表を表示します。
| リソース | 管理 | 編集 | 表示 |
|---|---|---|---|
| クラスター | read, update, delete | - | read |
| クラスターセット | get, update, bind, join | 編集ロールなし | get |
| マネージドクラスター | read, update, delete | 編集ロールなし | get |
| プロバイダー接続 | create, read, update, delete | - | read |
| API | 管理 | 編集 | 表示 |
|---|---|---|---|
|
この API のコマンドでは、 | create, read, update, delete | read, update | read |
|
この API のコマンドでは、 | read | read | read |
|
| update | update | |
|
この API のコマンドでは、 | create, read, update, delete | read, update | read |
|
| read | read | read |
|
この API のコマンドでは、 | create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
|
| create, read, update, delete | read, update | read |
1.2.3.2.3. 認証情報ロールベースのアクセス制御 リンクのコピーリンクがクリップボードにコピーされました!
認証情報へのアクセスは Kubernetes で制御されます。認証情報は Kubernetes Secret として保存され、セキュリティーを確保します。以下の権限は、Red Hat Advanced Cluster Management for Kubernetes のシークレットのアクセスに関係します。
- namespace でシークレットの作成権限のあるユーザーは認証情報を作成できます。
- namespace でシークレットの読み取り権限のあるユーザーは、認証情報を表示することもできます。
-
Kubernetes ロール
adminおよびeditのあるユーザーは、シークレットの作成と編集が可能です。 -
Kubernetes クラスターロール
viewのあるユーザーは、シークレットの内容を読み取ると、サービスアカウントの認証情報にアクセスできるようになるため、シークレットを表示できません。
1.2.4. ネットワーク設定 リンクのコピーリンクがクリップボードにコピーされました!
接続を許可するようにネットワーク設定を設定します。
重要: 信頼できる CA バンドルを multicluster engine Operator の namespace で利用できますが、その拡張にはネットワークの変更が必要です。信頼できる CA バンドル ConfigMap は、trusted-ca-bundle のデフォルト名を使用します。この名前は、TRUSTED_CA_BUNDLE という名前の環境変数で Operator に提供すると変更できます。詳細は、Red Hat OpenShift Container Platform の ネットワーク セクションで クラスター全体のプロキシーの設定 を参照してください。
注記: マネージドクラスターの Registration Agent および Work Agent は、プロキシーを通過できない mTLS 接続の確立によりハブクラスターの apiserver と通信するため、プロキシー設定をサポートしません。
multicluster engine Operator のクラスターネットワーク要件については、次の表を参照してください。
| 方向 | プロトコル | 接続 | ポート (指定されている場合) |
|---|---|---|---|
| Outbound | プロビジョニングしたマネージドクラスターの Kubernetes API サーバー | 6443 | |
| OpenShift Container Platform マネージドクラスターからハブクラスターへの送信 | TCP | ironic エージェントとハブクラスター上のベアメタルオペレーター間の通信 | 6180、6183、6385、5050 |
| ハブクラスターからマネージドクラスターの Ironic Python Agent (IPA) への送信 | TCP | IPA が実行されているベアメタルノードと Ironic conductor サービス間の通信 | 9999 |
| 送信および受信 |
マネージドクラスターの | 443 | |
| 受信 | マネージドクラスターの multicluster engine for Kubernetes Operator クラスターの Kubernetes API サーバー | 6443 |
注記: マネージドクラスターは、ハブクラスターのコントロールプレーンノードの IP アドレスに到達できる必要があります。