アドバンスド・クラスタ管理アドオンのセットアップ
アドバンスド・クラスタ管理(ACM)アドオンは、複数のクラスタにわたる監視、ワークロード配置、およびセキュリティ・ポリシーを管理する簡素化された方法を提供します。
OperatorHub からの ACM のインストールは、 IBM Cloud クラスタではサポートされていません。 ACMをインストールするには、このページの指示に従ってください。
ACMをインストールするクラスタはハブクラスタです。 インストール中またはインストール後に、ACMで管理するクラスタを複数指定できます。
開始前に
ACMアドオンをインストールする前に、以下の前提条件の手順と情報を確認してください。
- クラスタが以下の要件を満たしていることを確認してください。
- ハブクラスタ は、 RHCOS を実行する少なくとも 3 ワーカーノードと、最低 6 VCPU、 64GB RAM を持つ VPC クラスタでなければなりません。 高可用性を実現するには、クラスタが3つのゾーンにまたがって、ゾーンごとに少なくとも1つのワーカーノードを持つようにしてください。
- 各管理クラスタには、 RHCOSを実行するワーカーノードが最低 3台必要で、最低 6VCPUと 64GB RAMが必要です。
- ACMアドオンによって 自動的にインストールされるオペレータと、拡張機能としてインストールできる オプションのオペレータを 確認します。
- IBM Cloud Kubernetes Service、クラスタの Administratorプラットフォーム・アクセス・ロールとManagerサービス・アクセス・ロールが 必要です。
- 少なくとも3つのワーカーノードを含むVPCクラスターが必要です。 各ワーカーノードには、最低でも4つのCPUと 16GB のRAMが搭載されている必要があります。 高可用性を実現するには、クラスタが3つのゾーンにまたがって、ゾーンごとに少なくとも1つのワーカーノードを持つようにしてください。
- ACMに使用する信頼できるプロファイルをクラスタ上に作成 します。
- ACMで管理するクラスタごとに、管理対象のクラスタのアクセストークンとサーバ URL を使用してハブクラスタ上にシークレットを作成する必要があります。 このステップは、インストールの前でも後でも構いません。 ACMのための秘密準備 」を参照。
- CLIをインストールまたはアップデート する。
ACMの信頼できるプロフィールを作成する
以下の手順に従って、ACMで使用する信頼済みプロファイルを作成し、それをハブクラスターに割り当ててください。
クラスターに信頼済みプロファイルを追加すると、それを削除することはできず、リソースに対してAPIキーの使用を再開することもできなくなります。 信頼済みプロファイルが正しく設定されるよう、以下の手順を注意深く実行してください。
UI を使用して信頼済みプロファイルを作成する
-
手順に従って、 信頼できるプロフィールを作成して ください。 プロファイルの条件では、必ず以下のアクセスを指定してください。
- コンピューティングリソース: Red Hat OpenShift
- すべてのサービス・リソース
- 名前空間が等しい場合にアクセスを許可する
kube-system - Kubernetes Service 役割 - マネージャー、編集者
-
信頼済みプロファイルを作成したら、コンソールの 「信頼済みプロファイル」 ページからIDをコピーします。
CLI を使用して信頼済みプロファイルを作成する
- 信頼済みプロファイルを作成します。
ibmcloud iam trusted-profile-create acm-operator-profile - Red Hat OpenShift のコンピュートリソースにおいて、
kube-systemネームスペースをスコープとするコンピュートリソースのトラストルールを作成します。ibmcloud iam trusted-profile-rule-create acm-operator-profile \ --name kube-system-rule \ --type Profile-CR \ --conditions claim:namespace,operator:EQUALS,value:kube-system \ --cr-type ROKS_SA - IAMアクセスポリシーをプロファイルに割り当てます。
CLUSTER_IDを、ご使用のハブクラスタ ID に置き換えてください。ibmcloud iam trusted-profile-policy-create acm-operator-profile \ --roles Reader,Viewer,Operator,Editor \ --service-name containers-kubernetes \ --service-instance CLUSTER_ID
クラスタの信頼済みプロファイルを設定する
- 信頼済みプロファイルのIDを取得します。
ibmcloud iam trusted-profiles - クラスタに信頼済みプロファイルを割り当てます。
ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID
ACMのための秘密の準備
ACMで管理するクラスタごとに、管理対象のクラスタのアクセストークンとサーバ URL を含むシークレットをハブクラスタ上に作成する必要があります。
ACMアドオンのインストールプロセス中にマネージドクラスタをインポートする場合は、インストールを開始する前に以下の手順を完了してください。 アドオンをハブクラスタにインストールした後でシークレットの作成と管理クラスタのインポートを行う場合は、CLIで 追加の手順を 実行します。
管理したい各クラスターについて、以下の手順を実行してください。
-
ACMで管理したいクラスタ上でコマンドを実行し、サーバを見つける URL。 出力で、 マスター URL の値を見つけてメモする。 これはシークレットで参照するサーバー URL。 また、以下の手順でもこの URL を使用します。
ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID出力例。
NAME: mycluster ID: 1234567 State: normal Created: 2025-01-22T19:22:16+0000 Location: dal10 Master URL: https://c100-e.<region>.containers.cloud.ibm.com:<port> ... -
Red Hat OpenShift OAuthサーバーのベース URL を取得します。 「
MASTER_URL」を、前の手順で求めた「 URL 」に置き換えてください。 このコマンドは、/oauth/tokenという接尾辞を除いた、 URL という基本名を抽出します。curl -sS MASTER_URL/.well-known/oauth-authorization-server | jq -r .token_endpoint | sed 's#/oauth/token##'出力例。
https://c111-e.us-east.containers.cloud.ibm.com:31282 -
前の手順で取得したエンドポイントを使用して、アクセストークンを取得します。 次の cURL コマンドを実行してください。この際、
URLを前の手順で得られた出力に、API_KEYを自身の IBM Cloud APIキー に置き換えてください。 出力の中から、 Locationレスポンスに含まれるACCESS_TOKENを探してください。 シークレットに含めるアクセストークンです。curl 要求の例:
curl -u 'apikey:API_KEY' -H "X-CSRF-Token: a" 'URL/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv出力例。 ACCESS_TOKEN は Location レスポンス文字列に含まれています。
< HTTP/1.1 302 Found < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Expires: 0 < Expires: Fri, 01 Jan 2030 00:00:00 GMT < Location: TOKEN_ENDPOINT/oauth/token/implicit#access_token=ACCESS_TOKEN&expires_in=86400&scope=user%3Afull&token_type=Bearer ... -
ハブ・クラスタ上で、クラスタ・アクセストークンとサーバ URL を含むシークレットを作成します。 シークレットの作成については、 Kubernetes ドキュメントの Working with secrets を参照してください。
秘密の例。
apiVersion: v1 kind: Secret metadata: name: SECRET_NAME namespace: SECRET_NAMESPACE # The namespace that the secret is to be created in type: Opaque stringData: token: ACCESS_TOKEN server: SERVER_URL
UI からの ACM のインストール
UIを使用して、ACMアドオンとACMオペレータをハブクラスタにインストールします。
-
インストールプロセス中にACMで管理する1つまたは複数の管理対象クラスタをインポートする場合は、 Preparing secrets for ACMの 手順に従って、ハブクラスタで必要なシークレットを作成します。 秘密の名前と名前空間を保存する。 このステップをスキップして、インストール後に完了させることもできますが、CLIの追加ステップが必要になります。
-
IBM Cloud コンソールにログインし、 クラスタ・ ページに移動します。 ACMをインストールするクラスタをクリックします。
-
クラスターの詳細ページから、 アドオンセクションを見つけます。
-
Available to install ]で、 [ Red Hat Advanced Cluster Management] オプションを見つけ、[ Install] をクリックします。
-
インストールページで、インストールするACMアドオンのバージョンを選択します。
-
管理クラスタのインポート方法を選択します。 アドオンのインストール後にクラスタをインポートするには、 CLIからインポートを選択します。 ハブ・クラスタで必要なシークレットを作成し、管理対象クラスタを今すぐインポートする場合は、[ Import now ]を選択します。
IBM Cloud のUIを使用してマネージドクラスタをインポートできるのは、インストールプロセス中のみです。 ハブクラスタにACMアドオンをインストールしたら、 CLIを使用する または OpenShift Webコンソールを使用して、管理対象クラスタをインポートできます。
- Import now オプションを選択した場合は、ポップアップメニューの Import clusterをクリックします。
- アカウント存在するクラスタをインポートするには、クラスタを選択し、シークレット名とネームスペースを入力します。 そして、「次へ」 をクリックします。
- アカウントアカウントまたは外部クラスタをインポートするには、クラスタID、シークレット名、およびシークレットネームスペースを指定します。 次に、「 クラスターのインポート 」をクリックします。
-
「作成」 をクリックします。
-
クラスタにアドオンがインストールされていることを確認します。
- OpenShift Web Console Multicluster Hubに移動します。
- ナビゲーションメニューから「 Fleet Management 」を選択します。
- クラスタ]リストを見つけて、クラスタが[ Hub] コントロールプレーンタイプでリストされていることを確認します。
-
オプションです:ACM機能を強化するためにインストールできる 追加オペレータを 確認します。
CLI からの ACM のインストール
CLIを使用して、ハブクラスタにACMアドオンをインストールします。
-
ACMアドオンのデフォルトバージョンを探す。
ibmcloud oc cluster addon versions -
ACMのアドオンオプションを確認してください。 コマンドでは、前のステップで見つかったデフォルト・バージョンを指定する。 アドオンをインストールする際に入れたいオプションがあればメモしてください。
ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION -
アドオンで管理するクラスタをインポートする場合は、 Preparing secrets for ACMの 手順に従ってください。 クラスタID、およびハブ・クラスタ上に作成したシークレットの名前とネームスペースを必ず保存してください。 アドオンをハブクラスタにインストールした後でもこのプロセスを完了できますが、 インストール後に管理クラスタをインポート するには追加の手順が必要です。
-
コマンドを実行して、アドオンを有効にしてください。
billingPlan、isLicenseAcceptedパラメータを必ず指定してください。また、インストール中にクラスタをインポートする場合は、オプションの--managedClustersパラメータも指定してください。ibmcloud oc cluster addon enable acm --cluster HUB_CLUSTER_ID --param 'managedClusters=["clusterid:CLUSTER_ID;secretname:SECRET_NAME;secretnamespace:SECRET_NAMESPACE;action:IMPORT"]' --param 'billingPlan=PLAN' --param 'isLicenseAccepted=BOOLEAN'コマンドパラメータ。 各パラメータータイプの例については、以下のコマンド例を参照のこと。
--cluster- 必須。 ACMアドオンをインストールするハブクラスタのID。
--param 'managedClusters=["]-
- オプション。 アドオンのインストールプロセス中に管理クラスタをインポートするには、このパラメータを1回以上含めます。 このステップは後で完了させることもできる。 詳細については、「 ACM 用のシークレットの準備 」を参照してください。
- 以下の値を指定します。
-
- clusterid :インポートする管理クラスターのID。
-
- secretname: ハブ・クラスターで作成したシークレットの名前。 このシークレットには管理クラスターの認証情報が含まれています。
-
- secretnamespace :ハブ・クラスターで作成した秘密の名前空間。 このシークレットには管理クラスターの認証情報が含まれています。
-
- action:IMPORT: 管理対象クラスタのIMPORTアクションを指定するパラメータです。
--param 'billingPlan='- 必須。 ACMで選択したい課金プラン。 ACM for Kubernetes プランに
KUBERNETESを指定する。 --param 'isLicenseAccepted='- 必須。 選択した課金プランの使用許諾契約を承諾する場合は、
TRUEを指定します。 本ライセンスに同意することにより、お客様は適用される諸条件に同意し、選択したプランに含まれるサービスについて理解したものとみなされます。
-
アドオンがインストールされていることを確認する。 アドオンが以下の出力に表示されるまで、数分かかる場合があります。
- ハブ・クラスターで、
acmhubリソースが作成されていることを確認します。
oc get acmhub ``` 出力例。 ```sh {: screen} NAME AGE acm-auto 1h ``` 2. ハブクラスタで、 `acmhub` のステータスを確認します。 ```sh {: pre} oc describe acmhubstatus ``` 出力例。 ```sh {: screen} status phase: Ready ``` - ハブ・クラスターで、
-
オプションです:ACM機能を強化するためにインストールできる 追加オペレータを 確認します。
ACMオペレーター
ACMアドオンによって自動的にインストールされるオペレータと、拡張機能としてインストールできるオプションのオペレータを確認します。
自動的にインストールされるオペレーター
ACMアドオンをインストールすると、以下のオペレータがハブクラスタまたはマネージドクラスタに自動的にインストールされます。
| オペレーター | 説明 |
|---|---|
| 高度クラスタ管理(ACM)オペレータ | ハブクラスタにインストールされました。 |
| MultiCluster エンジン・オペレーター | ACMオペレータが管理クラスタにインストールする。 |
オプション演算子
以下のオペレータはオプションで、ACM機能を強化するためにハブクラスタまたはマネージドクラスタのいずれかにインストールできます。 なお、 IBM、これらのオペレーターを管理する責任はない。
お客様は、更新、監視、回復、再インストールを含むがこれに限定されない、これらのオペレーターの管理に責任を負うものとする。
| オペレーター | 説明 | 詳細情報 |
|---|---|---|
| GitOps オペレーター |
|
GitOps 概要 |
| Red Hat OpenShift 仮想化オペレーター |
|
OpenShift 仮想化オペレータのインストール |
| サブマリーナー |
|
サブマリーナー |
ACMインストール後の管理クラスタのインポート
ACMで管理するクラスタをインポートするには、いくつかの方法がある。 クラスタをインポートする前に、 ACMに必要なシークレットが作成 されていることを確認してください。
ACMによって管理されるすべてのクラスタは、クラスタセットに属していなければならない。 新しいクラスタ・セットを作成することも、 Default クラスタ・セットにクラスタを追加することもできます。 クラスタ・セットが指定されていない場合、管理クラスタは Default オプションに追加されます。
CLIを使用したマネージドクラスターのインポート
CLIを使用して管理対象のクラスタをインポートするには、ACMリソースを編集して管理対象のクラスタを含めます。
-
コマンドを実行してACMリソースを編集する。
oc edit acmhub RESOURCE_NAME -
リソースの
managedClustersセクションに、クラスタID、ACM用に作成したクラスタ・シークレットの名前、シークレットの名前空間を追加し、Importアクションを指定します。 書式については以下の例を参照のこと。 次の例では、cluster_id_1をインポートしている。managedclusters: - clusterid: "cluster_id_1" secretname: "managed-secret-1" secretnamespace: "managed-namespace" # The namespace that the secret was created in action: "Import" -
変更を保存して適用します。
OpenShift トークンと API サーバーを使用したマネージドクラスターのインポート URL
インポートするクラスタの OpenShift トークンと API サーバー URL を収集し、ACM コンソールを使用してクラスタをインポートします。
-
IBM Cloud コンソールで、 クラスタリストに移動し、インポートするクラスタをクリックします。
-
クラスターの詳細ページで、**「OpenShift Web コンソール (OpenShift web console)」**をクリックします。
-
ユーザー名のドロップダウンメニューをクリックします。
IAM#username. ドロップダウンから、 ログインコマンドをコピーをクリックします。 -
ログインコマンドを表示するには、 [Display token ]をクリックします。
oc loginで始まるコマンドを見つけ、APIトークン(sha256~XXXX)とサーバー( URL )を保存する。 -
ACMコンソールに移動します。 Infrastructure > Clusters > Import an existing clusterをクリックします。
-
プロンプトに従ってクラスタをインポートし、パラメータセクションでAPIトークンとサーバ URL。
kubeconfigを使用した管理クラスタのインポート
kubeconfigの詳細を収集し、ACMコンソールを使用してクラスタをインポートします。
-
IBM Cloud CLIから以下のコマンドを実行して、インポートするクラスタのkubeconfigを取得します。 出力に表示されたkubeconfigファイルの内容を保存します。
ibmcloud ks cluster config --cluster CLUSTER_NAME --admin --output yaml -
ACMコンソールに移動します。 Infrastructure > Clusters > Import an existing clusterをクリックします。
-
プロンプトに従ってクラスタをインポートし、パラメータセクションにkubeconfigの内容を含めます。
生成されたコマンドを使用したマネージドクラスターのインポート
ACMコンソールを使用してクラスタをインポートするコマンドを生成し、インポートするクラスタでそのコマンドを実行します。
- ACMコンソールに移動します。 Infrastructure > Clusters > Import an existing clusterをクリックします。
- インポートコマンドを生成するオプションを選択する。 コマンドをコピーする。
- IBM Cloud CLIにログインし、インポートするクラスタでコマンドを実行します。
管理クラスタの更新または削除
ACMインスタンスからマネージドクラスタを削除または更新するには、ハブクラスタ上のACMカスタムリソースの managedClusters セクションを編集する必要があります。
-
コマンドを実行してACMリソースを編集する。
oc edit acmhub RESOURCE_NAME -
リソースの
managedClusters・セクションに、クラスタID、ACM用に作成したクラスタ・シークレットの名前、シークレットの名前空間、クラスタに実装するアクションを追加します。 書式については以下の例を参照のこと。 アクションには、DeleteまたはUpdateを指定する。 クラスタを削除するには、secretやsecret名前空間は必要ないことに注意してください。次の例は、
cluster_id_1を削除し、cluster_id_2を更新します。managedclusters: - clusterid: "cluster_id_1" action: "Delete" - clusterid: "cluster_id_2" secretname: "managed-secret-2" secretnamespace: "managed-namespace-2" # The namespace that the secret was created in action: "Update" -
変更を保存して適用します。
ACMバージョンのアップグレード
コマンドを実行して、アドオンを新しいバージョンにアップグレードします。
ibmcloud oc cluster addon update acm --cluster CLUSTER_ID --version ADD-ON_VERSION
アドオンが更新されたことを確認するには、クラスタのアドオンを一覧表示します。 出力で、ACMアドオンの詳細を探す。
ibmcloud oc cluster addon ls --cluster CLUSTER_ID
ACMアドオンの削除
ACMアドオンを削除する手順に従ってください。
-
ハブクラスタからACMリソースを削除します。
oc delete acmhub RESOURCE_NAME -
リソースが削除されたら、ACMアドオンを削除する。 同じクラスタ ID を指定してください。
ibmcloud oc cluster addon disable acm -f --cluster CLUSTER_ID