1.2. マルチクラスターエンジン Operator を使用したクラスターライフサイクルについて
Kubernetes Operator のマルチクラスターエンジンは、Red Hat OpenShift Container Platform および Red Hat Advanced Cluster Management ハブクラスターにクラスター管理機能を提供するクラスターライフサイクル Operator です。Red Hat Advanced Cluster Management をインストールした場合は、自動的にインストールされるため、マルチクラスターエンジン Operator をインストールする必要はありません。
ハブクラスターとマネージドクラスターの要件とサポートの詳細は、マルチクラスターエンジン Operator のサポートマトリックス および次のドキュメントを参照してください。
続行するには、マルチクラスターエンジン Operator を使用したクラスターライフサイクルについて で、残りのクラスターライフスタイルドキュメントを参照してください。
1.2.1. コンソールの概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform コンソールプラグインは OpenShift Container Platform Web コンソールで利用可能であり、統合することができます。この機能を使用するには、コンソールプラグインを有効にしておく必要があります。マルチクラスターエンジンの Operator は、Infrastructure および Credentials のナビゲーション項目から特定のコンソール機能を表示します。Red Hat Advanced Cluster Management をインストールすると、より多くのコンソール機能が表示されます。
注記: プラグインが有効になっている場合、ドロップダウンメニューから 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.2. マルチクラスターエンジン Operator のロールベースのアクセス制御 リンクのコピーリンクがクリップボードにコピーされました!
RBAC はコンソールレベルと API レベルで検証されます。コンソール内のアクションは、ユーザーのアクセスロールの権限に基づいて有効化/無効化できます。製品の特定ライフサイクルの RBAC の詳細は、以下のセクションを参照してください。
1.2.2.1. ロールの概要 リンクのコピーリンクがクリップボードにコピーされました!
クラスター別の製品リソースと、スコープに namespace が指定されている製品リソースがあります。アクセス制御に一貫性を持たせるため、クラスターのロールバインディングと、namespace のロールバインディングをユーザーに適用する必要があります。サポートされている次のロール定義の表リストを表示します。
1.2.2.1.1. ロール定義表 リンクのコピーリンクがクリップボードにコピーされました!
| ロール | 定義 |
|---|---|
|
|
これは OpenShift Container Platform のデフォルトのロールです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin、edit、および view は OpenShift Container Platform のデフォルトロールです。これらのロールに対して namespace に限定されたバインディングが指定されているユーザーは、特定の namespace 内の |
重要:
- ユーザーは OpenShift Container Platform からプロジェクトを作成できます。これにより、namespace の管理者ロール権限が付与されます。
-
ユーザーにクラスターへのロールアクセスがない場合、クラスター名は表示されません。クラスター名は、
-の記号で表示されます。
RBAC はコンソールレベルと API レベルで検証されます。コンソール内のアクションは、ユーザーのアクセスロールの権限に基づいて有効化/無効化できます。製品の特定ライフサイクルの RBAC の詳細は、以下のセクションを参照してください。
1.2.2.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.2.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.2.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.2.2.3. 認証情報ロールベースのアクセス制御 リンクのコピーリンクがクリップボードにコピーされました!
認証情報へのアクセスは Kubernetes で制御されます。認証情報は Kubernetes Secret として保存され、セキュリティーを確保します。以下の権限は、Red Hat Advanced Cluster Management for Kubernetes のシークレットのアクセスに関係します。
- namespace でシークレットの作成権限のあるユーザーは認証情報を作成できます。
- namespace でシークレットの読み取り権限のあるユーザーは、認証情報を表示することもできます。
-
Kubernetes ロール
adminおよびeditのあるユーザーは、シークレットの作成と編集が可能です。 -
Kubernetes クラスターロール
viewのあるユーザーは、シークレットの内容を読み取ると、サービスアカウントの認証情報にアクセスできるようになるため、シークレットを表示できません。
1.2.3. ネットワーク設定 リンクのコピーリンクがクリップボードにコピーされました!
接続を許可するようにネットワーク設定を設定します。
重要: 信頼できる CA バンドルはマルチクラスターエンジン Operator namespace で利用できますが、その拡張にはネットワークへの変更が必要です。信頼できる CA バンドル ConfigMap は、trusted-ca-bundle のデフォルト名を使用します。この名前は、TRUSTED_CA_BUNDLE という名前の環境変数で Operator に提供すると変更できます。詳細は、Red Hat OpenShift Container Platform の ネットワーク セクションの クラスター全体のプロキシーの設定 を参照してください。
注記: マネージドクラスターの Registration Agent および Work Agent は、プロキシーを通過できない mTLS 接続の確立によりハブクラスターの apiserver と通信するため、プロキシー設定をサポートしません。
マルチクラスターエンジン Operator のクラスターネットワーク要件については、次の表を参照してください。
| 方向 | プロトコル | 接続 | ポート (指定されている場合) |
|---|---|---|---|
| Outbound | プロビジョニングしたマネージドクラスターの Kubernetes API サーバー | 6443 | |
| OpenShift Container Platform マネージドクラスターからハブクラスターへの送信 | TCP | Ironic Python Agent とハブクラスター上のベアメタル Operator 間の通信 | 6180、6183、6385、5050 |
| ハブクラスターからマネージドクラスター上の Ironic Python Agent への送信 | TCP | Ironic Python Agent が実行されているベアメタルノードと Ironic conductor サービス間の通信 | 9999 |
| 送信および受信 |
マネージドクラスターの | 443 | |
| 受信 | マネージドクラスターからの Kubernetes Operator クラスター用マルチクラスターエンジンの Kubernetes API サーバー | 6443 |
注記: マネージドクラスターは、ハブクラスターのコントロールプレーンノードの IP アドレスに到達できる必要があります。