高度なクラスタ管理アドオンの設定(一部のリージョンのみ)
アドバンスド・クラスタ管理(ACM)アドオンは、複数のクラスタにわたる監視、ワークロード配置、およびセキュリティ・ポリシーを管理する簡素化された方法を提供します。
Advanced Cluster Managementアドオンは、一部のリージョンでのみ利用可能です。
OperatorHub からの ACM のインストールは、 IBM Cloud クラスタではサポートされていません。 ACMをインストールするには、このページの指示に従ってください。
ACMをインストールするクラスタはハブクラスタです。 インストール中またはインストール後に、ACMで管理するクラスタを複数指定できます。
開始前に
ACMアドオンをインストールする前に、以下の前提条件の手順と情報を確認してください。
- ACMプランの種類を 確認し、どのプランを利用するかを決める。 ACM for Virtualizationでは、管理クラスタはベアメタルワーカーノードで実行することを推奨します。
- クラスタが以下の要件を満たしていることを確認してください。
- ハブクラスタ は、 RHCOS を実行する少なくとも 3 ワーカーノードと、最低 6 VCPU、 64GB RAM を持つ VPC クラスタでなければなりません。 高可用性を実現するには、クラスタが3つのゾーンにまたがって、ゾーンごとに少なくとも1つのワーカーノードを持つようにしてください。
- 各管理クラスタには、 RHCOSを実行するワーカーノードが最低 3台必要で、最低 6VCPUと 64GB RAMが必要です。
- また、 ACM for Virtualization プランを使用する場合は、 ベアメタルワーカーノードの使用を推奨します。 ACM for Kubernetes プランでは、管理クラスタはベアメタルノードまたは VSIのいずれかを実行できる。
- ACMアドオンによって 自動的にインストールされるオペレータと、拡張機能としてインストールできる オプションのオペレータを 確認します。
- IBM Cloud Kubernetes Service、クラスタの Administratorプラットフォーム・アクセス・ロールとManagerサービス・アクセス・ロールが 必要です。
- 少なくとも3つのワーカーノードを持つVPCクラスタが必要です。 各ワーカーノードには最低4CPUと 16GB RAMが必要です。 高可用性を実現するには、クラスタが3つのゾーンにまたがって、ゾーンごとに少なくとも1つのワーカーノードを持つようにしてください。
- ACMに使用する信頼できるプロファイルをクラスタ上に作成 します。
- ACMで管理するクラスタごとに、管理対象のクラスタのアクセストークンとサーバ URL を使用してハブクラスタ上にシークレットを作成する必要があります。 このステップは、インストールの前でも後でも構いません。 ACMのための秘密準備 」を参照。
- CLIをインストールまたはアップデート する。
ACMの信頼できるプロフィールを作成する
ACMに使用する信頼済みプロファイルを作成する手順に従ってください。
-
手順に従って、 信頼できるプロフィールを作成して ください。 プロファイルの条件では、必ず以下のアクセスを指定してください。
- 名前空間が等しい場合にアクセスを許可する
kube-system - Satellite サービスの役割 - Satellite Link 管理者、読者
- Kubernetes Service 役割 - マネージャー、編集者
- 課金サービスの役割 - リーダー、オペレーター
- 名前空間が等しい場合にアクセスを許可する
-
信頼済みプロファイルを作成したら、コンソールの 「信頼済みプロファイル」 ページからIDをコピーします。
-
信頼されたプロファイルのIDを使用して、以下のシークレットを作成する。 以下のテキストを保存し、認証情報を入力してください。 ステップに従って手動でシークレットを作成することもできますし、シェルスクリプトを使用して クラスタ内で自動的にシークレットを作成 することもできます。
IBMCLOUD_AUTHTYPE=pod-identity IBMCLOUD_PROFILEID=<TRUSTED-PROFILE-ID> -
クラスタ内に、信頼済みプロファイルの認証情報を含むシークレットを作成します。 以下のYAMLを
ibm-cloud-credentials.yamlというファイルに保存する。ibm-credentials.env:フィールドに、信頼済みプロファイルの ID を入力します。apiVersion: v1 data: ibm-credentials.env: # Trusted profile ID kind: Secret metadata: name: ibm-cloud-credentials namespace: kube-system type: Opaque -
アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
クラスター内にシークレットを作成します。
kubectl apply -f ibm-cloud-credentials.yaml
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 サーバーのトークンエンドポイントを取得します。
<master_URL>を前のステップで見つけた URL で置き換える。 出力される値はアクセストークンではないことに注意。curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpoint出力例。
<token_endpoint>/oauth/token -
先ほど取得したエンドポイントを使用して、クラスターにログインします。
<URL>を、前のステップで見つけた oauth サーバーの<token_endpoint>に置き換える。 出力から、 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アドオンのバージョンを選択します。
-
使用する ACM プランを選択します: ACM for Virtualization または ACM for Kubernetes。 ACM for Virtualization プランから ACM for Kubernetes プランへのアップグレードはいつでも可能ですが、アップグレードは永続的なものであり、元に戻すことはできませんのでご注意ください。
-
管理クラスタのインポート方法を選択します。 アドオンのインストール後にクラスタをインポートするには、 CLIからインポートを選択します。 ハブ・クラスタで必要なシークレットを作成し、管理対象クラスタを今すぐインポートする場合は、[ Import now ]を選択します。
UIを使用してマネージドクラスタをインポートできるのは、インストールプロセス中のみです。 ACMアドオンがハブクラスタにインストールされたら、 CLIを使用して 管理クラスタをインポートする必要があります。
- 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 ibmcloud oc cluster addon enable acm --cluster HUB_CLUSTER_ID 'managedClusters=["clusterid:CLUSTER_ID;secretname:SECRET_NAME;secretnamespace:SECRET_NAMESPACE;action:IMPORT"]' --param 'billingPlan=PLAN' --param 'isLicenseAccepted=BOOLEAN' --paramコマンドパラメータ。 各パラメータータイプの例については、以下のコマンド例を参照のこと。
--cluster- 必須。 ACMアドオンをインストールするハブクラスタのID。
--param 'managedClusters=["]-
- オプション。 アドオンのインストールプロセス中に管理クラスタをインポートするには、このパラメータを1回以上含めます。 このステップは後で完了させることもできる。 詳しくは、 ACMのための秘密の準備を ご覧ください。
- 以下の値を指定します。
-
- clusterid :インポートする管理クラスターのID。
-
- secretname: ハブ・クラスターで作成したシークレットの名前。 このシークレットには管理クラスターの認証情報が含まれています。
-
- secretnamespace :ハブ・クラスターで作成した秘密の名前空間。 このシークレットには管理クラスターの認証情報が含まれています。
-
- action:IMPORT: 管理対象クラスタのIMPORTアクションを指定するパラメータです。
--param 'billingPlan='- 必須。 ACMで選択したい課金プラン。 オプションには、 ACM for Kubernetes プランの
KUBERNETES、または ACM for Virtualization プランのVIRTUALIZATION。 ACM for Virtualization から ACM for Kubernetes へのアップグレードは可能ですが、アップグレードは永続的であり、元に戻すことはできません。 --param 'isLicenseAccepted='- 必須。 選択した課金プランの使用許諾契約を承諾する場合は、
TRUEを指定します。 本ライセンスに同意することにより、お客様は適用される諸条件に同意し、選択したプランに含まれるサービスについて理解したものとみなされます。
ACM for Virtualizationの課金プランでACMアドオンをインストールし、管理されたクラスタをインポートするコマンドの例。
ibmcloud ks cluster addon enable acm --cluster a5bcde982dfer2nwxq73 --param 'managedClusters=["clusterid:w7rthce34gfbq7ww12d3;secretname:managed-secret-1;secretnamespace:managed-ns1;action:Import"]' --param 'billingPlan=KUBERNETES' --param 'isLicenseAccepted=true' -
アドオンがインストールされていることを確認する。 アドオンが以下の出力に表示されるまで、数分かかる場合があります。
-
ハブ・クラスターで、
acmhubリソースが作成されていることを確認します。oc get acmhub出力例。
NAME AGE acm-auto 1h -
ハブクラスタで、
acmhubのステータスを確認します。oc describe acmhubstatus出力例。
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>