アドバンスド・クラスタ管理アドオンのセットアップ

アドバンスド・クラスタ管理(ACM)アドオンは、複数のクラスタにわたる監視、ワークロード配置、およびセキュリティ・ポリシーを管理する簡素化された方法を提供します。

OperatorHub からの ACM のインストールは、 IBM Cloud クラスタではサポートされていません。 ACMをインストールするには、このページの指示に従ってください。

ACMをインストールするクラスタはハブクラスタです。 インストール中またはインストール後に、ACMで管理するクラスタを複数指定できます。

開始前に

ACMアドオンをインストールする前に、以下の前提条件の手順と情報を確認してください。

  1. クラスタが以下の要件を満たしていることを確認してください。
    • ハブクラスタ は、 RHCOS を実行する少なくとも 3 ワーカーノードと、最低 6 VCPU、 64GB RAM を持つ VPC クラスタでなければなりません。 高可用性を実現するには、クラスタが3つのゾーンにまたがって、ゾーンごとに少なくとも1つのワーカーノードを持つようにしてください。
    • 各管理クラスタにはRHCOSを実行するワーカーノードが最低 3台必要で、最低 6VCPUと 64GB RAMが必要です。
  2. ACMアドオンによって 自動的にインストールされるオペレータと、拡張機能としてインストールできる オプションのオペレータを 確認します。
  3. IBM Cloud Kubernetes Service、クラスタの Administratorプラットフォーム・アクセス・ロールとManagerサービス・アクセス・ロールが 必要です。
  4. 少なくとも3つのワーカーノードを含むVPCクラスターが必要です。 各ワーカーノードには、最低でも4つのCPUと 16GB のRAMが搭載されている必要があります。 高可用性を実現するには、クラスタが3つのゾーンにまたがって、ゾーンごとに少なくとも1つのワーカーノードを持つようにしてください。
  5. ACMに使用する信頼できるプロファイルをクラスタ上に作成 します。
  6. オプション :ACM アドオンのインストールプロセス中にマネージドクラスタをインポートする場合、インストール後に CLI を使用してマネージドクラスタをインポートする予定がある場合、または後でマネージドクラスタの接続認証情報を更新する予定がある場合は、各マネージドクラスタごとにハブクラスタ上にシークレットを作成する必要があります。 「 ACM 向けのシークレットの準備 」を参照してください。 インストール後に「 OpenShift 」Webコンソールを使用してマネージドクラスタをインポートする予定のみの場合は、この手順は不要です。
  7. CLIをインストールまたはアップデート する。

ACMの信頼できるプロフィールを作成する

以下の手順に従って、ACMで使用する信頼済みプロファイルを作成し、それをハブクラスターに割り当ててください。

クラスターに信頼済みプロファイルを追加すると、それを削除することはできず、リソースに対してAPIキーの使用を再開することもできなくなります。 信頼済みプロファイルが正しく設定されるよう、以下の手順を注意深く実行してください。

UI を使用して信頼済みプロファイルを作成する

  1. 手順に従って、 信頼できるプロフィールを作成して ください。 プロファイルの条件では、必ず以下のアクセスを指定してください。

    • コンピューティングリソース: Red Hat OpenShift
    • すべてのサービス・リソース
    • 名前空間が等しい場合にアクセスを許可する kube-system
    • Kubernetes Service 役割 - マネージャー、編集者
  2. 信頼済みプロファイルを作成したら、コンソールの 「信頼済みプロファイル」 ページからIDをコピーします。

CLI を使用して信頼済みプロファイルを作成する

  1. 信頼済みプロファイルを作成します。
    ibmcloud iam trusted-profile-create acm-operator-profile
    
  2. 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
    
  3. 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
    

クラスタの信頼済みプロファイルを設定する

  1. 信頼済みプロファイルのIDを取得します。
    ibmcloud iam trusted-profiles
    
  2. クラスタに信頼済みプロファイルを割り当てます。
    ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID
    
  3. クラスタ内に信頼済みプロファイルのシークレットが作成されていることを確認してください。 このコマンドの実行には、最大10分ほどかかる場合があります。 ACMアドオンのインストールを進める前に、秘密鍵が表示されるまでお待ちください。 秘密鍵が作成される前に操作を進めると、ACM アドオンのインストールに失敗します。
    oc get secrets -n kube-system | grep ibm-cloud-credentials
    

ACMのための秘密の準備

ACM用のシークレットの作成は任意です。 このセクションの入力が必要なのは、ACM アドオンのインストールプロセス中にマネージドクラスタをインポートする場合、 インストール後に CLI を使用してマネージドクラスタをインポートする 予定の場合、または後で マネージドクラスタの接続認証情報を更新する 予定の場合のみです。

インストール後に OpenShift のWebコンソールを使用してマネージドクラスタをインポートする予定であり、後で接続認証情報を更新する必要がない場合は、シークレットを作成する必要はありません。

管理対象の各クラスターについて、ハブクラスターで以下の手順を実行してください。

  1. 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>
    ...
    
  2. 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
    
  3. 前の手順で取得したエンドポイントを使用して、アクセストークンを取得します。 次の 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
    ...
    
  4. ハブ・クラスタ上で、クラスタ・アクセストークンとサーバ 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オペレータをハブクラスタにインストールします。

  1. インストールプロセス中にACMで管理する1つまたは複数の管理対象クラスタをインポートする場合は、 Preparing secrets for ACMの 手順に従って、ハブクラスタで必要なシークレットを作成します。 秘密の名前と名前空間を保存する。 このステップをスキップして、インストール後に完了させることもできますが、CLIの追加ステップが必要になります。

  2. IBM Cloud コンソールにログインし、 クラスタ・ ページに移動します。 ACMをインストールするクラスタをクリックします。

  3. クラスターの詳細ページから、 アドオンセクションを見つけます。

  4. Available to install ]で、 [ Red Hat Advanced Cluster Management] オプションを見つけ、[ Install] をクリックします。

  5. インストールページで、インストールするACMアドオンのバージョンを選択します。

  6. 管理クラスタのインポート方法を選択します。 アドオンのインストール後にクラスタをインポートするには、 CLIからインポートを選択します。 ハブ・クラスタで必要なシークレットを作成し、管理対象クラスタを今すぐインポートする場合は、[ Import now ]を選択します。

    IBM Cloud のUIを使用してマネージドクラスタをインポートできるのは、インストールプロセス中のみです。 ハブクラスタにACMアドオンをインストールすると、 CLI を使用する または OpenShift のWebコンソールを使用して、管理対象クラスタをインポートできるようになります。

    1. Import now オプションを選択した場合は、ポップアップメニューの Import clusterをクリックします。
    2. アカウント存在するクラスタをインポートするには、クラスタを選択し、シークレット名とネームスペースを入力します。 そして、「次へ」 をクリックします。
    3. アカウントアカウントまたは外部クラスタをインポートするには、クラスタID、シークレット名、およびシークレットネームスペースを指定します。 次に、「 クラスターのインポート 」をクリックします。
  7. 「作成」 をクリックします。

  8. クラスタにアドオンがインストールされていることを確認します。

    1. OpenShift Web Console Multicluster Hubに移動します。
    2. ナビゲーションメニューから「 Fleet Management 」を選択します。
    3. クラスタ]リストを見つけて、クラスタが[ Hub] コントロールプレーンタイプでリストされていることを確認します。
  9. オプションです:ACM機能を強化するためにインストールできる 追加オペレータを 確認します。

CLI からの ACM のインストール

CLIを使用して、ハブクラスタにACMアドオンをインストールします。

  1. ACMアドオンのデフォルトバージョンを探す。

    ibmcloud oc cluster addon versions
    
  2. ACMのアドオンオプションを確認してください。 コマンドでは、前のステップで見つかったデフォルト・バージョンを指定する。 アドオンをインストールする際に入れたいオプションがあればメモしてください。

    ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION
    
  3. アドオンで管理するクラスタをインポートする場合は、 Preparing secrets for ACMの 手順に従ってください。 クラスタID、およびハブ・クラスタ上に作成したシークレットの名前とネームスペースを必ず保存してください。 アドオンをハブクラスタにインストールした後でもこのプロセスを完了できますが、 インストール後に管理クラスタをインポート するには追加の手順が必要です。

  4. コマンドを実行して、アドオンを有効にしてください。 billingPlanisLicenseAccepted パラメータを必ず指定してください。また、インストール中にクラスタをインポートする場合は、オプションの --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 を指定します。 本ライセンスに同意することにより、お客様は適用される諸条件に同意し、選択したプランに含まれるサービスについて理解したものとみなされます。
  5. アドオンがインストールされていることを確認する。 アドオンが以下の出力に表示されるまで、数分かかる場合があります。

    1. ハブ・クラスターで、 acmhub リソースが作成されていることを確認します。
        oc get acmhub
        ```
        出力例。
    
        ```sh {: screen}
            NAME       AGE
            acm-auto   1h
        ```
    2. ハブクラスタで、 `acmhub` のステータスを確認します。
    
    ```sh {: pre}
        oc describe acmhubstatus
        ```
        出力例。
    
        ```sh {: screen}
        status
            phase: Ready
        ```
    
  6. オプションです:ACM機能を強化するためにインストールできる 追加オペレータを 確認します。

ACMオペレーター

ACMアドオンによって自動的にインストールされるオペレータと、拡張機能としてインストールできるオプションのオペレータを確認します。

自動的にインストールされるオペレーター

ACMアドオンをインストールすると、以下のオペレータがハブクラスタまたはマネージドクラスタに自動的にインストールされます。

ACMに自動的にインストールされるオペレータ。
演算子 説明
高度クラスタ管理(ACM)オペレータ ハブクラスタにインストールされました。
MultiCluster エンジン・オペレーター ACMオペレータが管理クラスタにインストールする。

オプション演算子

以下のオペレータはオプションで、ACM機能を強化するためにハブクラスタまたはマネージドクラスタのいずれかにインストールできます。 なお、 IBM、これらのオペレーターを管理する責任はない。

お客様は、更新、監視、回復、再インストールを含むがこれに限定されない、これらのオペレーターの管理に責任を負うものとする。

ACMのオプション・オペレーター。
演算子 説明 詳細情報
GitOps オペレーター
  • ACM コンソールから Argo-cd アプリケーションを実行するために使用します。
  • ハブクラスタと マネージドクラスタにインストールします。
GitOps 概要
Red Hat OpenShift 仮想化オペレーター
  • コンテナ・ワークロードと並行して VM ワークロードを管理するために使用する。
  • マネージド・クラスターにインストールする。
  • ベアメタルクラスターでのみ利用可能(マネージドクラスターにのみ適用)。
OpenShift 仮想化オペレータのインストール
サブマリーナー
  • 環境内の2つ以上の Kubernetes クラスタ間で直接的なネットワーク接続を提供します。 ODF を使用した地域災害復旧 に必要です。
  • 管理対象クラスタにインストールしてください。
サブマリーナー

ACMインストール後の管理クラスタのインポート

ACMのインストール後、 OpenShift のWebコンソールまたはCLIを使用して、マネージドクラスタをインポートできます。 コンソールベースの手法では、シークレットは必要ありません。 CLI 方式では シークレット が必要です。

ACMによって管理されるすべてのクラスターは、クラスターセットに属していなければなりません。 新しいクラスタ・セットを作成することも、 Default クラスタ・セットにクラスタを追加することもできます。 クラスタ・セットが指定されていない場合、管理クラスタは Default オプションに追加されます。

生成されたコマンドを使用したマネージドクラスターのインポート

OpenShift のWebコンソールを使用してインポートコマンドを生成し、そのコマンドをインポート先のクラスターで実行してください。

  1. ACMハブクラスターの OpenShift Webコンソールを開きます。

  2. フリート管理 」の画面で、「 クラスターのインポート 」をクリックします。

  3. クラスタの名前を入力し、必要に応じてクラスタセットを選択し、必要に応じて追加のラベルを入力してください。

  4. インポート」モードでは、「 インポートコマンドを手動で実行する 」を選択し、「 次へ 」をクリックします。

  5. 必要に応じて自動化テンプレートを選択し、「 次へ 」をクリックします。

  6. 詳細を確認し、「 コマンドを生成 」をクリックしてください。 表示されたコマンドをコピーしてください。

  7. インポートしたいクラスタにログインし、そのクラスタ用に設定された kubectl を使用して、コピーしたコマンドを実行してください。

サーバー URL および API トークンを使用して、マネージドクラスターをインポートする

インポートしたいクラスターのAPIトークンとサーバーの URL を取得し、 OpenShift のWebコンソールを使用してクラスターをインポートしてください。

  1. インポートしたいクラスタのAPIトークンとサーバーの URL を取得してください。

    1. IBM Cloud コンソールで、 クラスタ一覧に移動し、インポートしたいクラスタをクリックします。

    2. クラスターの詳細ページで、**「OpenShift Web コンソール (OpenShift web console)」**をクリックします。

    3. IAM#username という形式で表示されているユーザー名メニューをクリックし、次に「 ログインコマンドをコピー 」をクリックします。

    4. [ トークンの表示 ] をクリックします。 oc login で始まるコマンドを見つけ、APIトークン(sha256~XXXX )とサーバー( URL )を保存する。

  2. ACMハブクラスターの OpenShift Webコンソールを開きます。

  3. フリート管理 」の画面で、「 クラスターのインポート 」をクリックします。

  4. クラスタの名前を入力し、必要に応じてクラスタセットを選択し、必要に応じて追加のラベルを入力してください。

  5. 「インポート」モードでは、 既存のクラスターのサーバー URL とAPIトークンを入力してください。 サーバー「 URL 」と取得したAPIトークンを入力し、「 次へ 」をクリックします。

  6. 必要に応じて自動化テンプレートを選択し、「 次へ 」をクリックします。

  7. 詳細を確認し、「 インポート 」をクリックしてください。

kubeconfigを使用した管理クラスタのインポート

インポートしたいクラスターのkubeconfigを用意し、 OpenShift のWebコンソールを使用してクラスターをインポートします。

  1. インポートしたいクラスタのkubeconfigを取得してください。 IBM Cloud のCLIから、次のコマンドを実行し、その出力を保存してください。

    ibmcloud ks cluster config --cluster CLUSTER_NAME --admin --output yaml
    
  2. ACMハブクラスターの OpenShift Webコンソールを開きます。

  3. フリート管理 」の画面で、「 クラスターのインポート 」をクリックします。

  4. クラスタの名前を入力し、必要に応じてクラスタセットを選択し、必要に応じて追加のラベルを入力してください。

  5. 「インポート」モードでは、「 Kubeconfig 」を選択し、取得したkubeconfigの内容を貼り付けてから、「 次へ 」をクリックしてください。

  6. 必要に応じて自動化テンプレートを選択し、「 次へ 」をクリックします。

  7. 詳細を確認し、「 インポート 」をクリックしてください。

Red Hat OpenShift クラスターマネージャーからのインポート

Red Hat OpenShift Cluster Managerからのインポート 」モードは、 AWS ( ROSA )上の Red Hat OpenShift Serviceクラスタでのみサポートされており、 IBM Cloud クラスタには適用されません。

CLIを使用したマネージドクラスターのインポート

CLI によるインポート方法では、ハブクラスタ上で管理対象クラスタ用の シークレットを作成 しておく必要があります。

CLIを使用して管理対象のクラスタをインポートするには、ACMリソースを編集して管理対象のクラスタを含めます。

  1. コマンドを実行してACMリソースを編集する。

    oc edit acmhub RESOURCE_NAME
    
  2. リソースの managedClusters セクションに、クラスタID、ACM用に作成したクラスタ・シークレットの名前、シークレットの名前空間を追加し、 Import アクションを指定します。 次の例では、 CLUSTER_ID_1 をインポートしている。

    managedclusters:
      - clusterid: "CLUSTER_ID_1"
        secretname: "SECRET_NAME"
        secretnamespace: "SECRET_NAMESPACE" # The namespace that the secret was created in
        action: "Import"
    
  3. 変更を保存して適用します。

管理クラスタの更新または削除

ACMインスタンスからマネージドクラスタを削除する場合、またはマネージドクラスタに対するACMの接続認証情報を更新する場合(たとえば、トークンのローテーション後やサーバーの URL が変更された後など)、ハブクラスタ上のACMカスタムリソースの managedClusters セクションを編集する必要があります。 Update アクションは、ACMがマネージドクラスターとの通信に使用するシークレットベースの認証情報を更新します。 これは、クラスタの OpenShift バージョンをアップグレードすることとは異なります。

マネージドクラスタの接続認証情報を更新するには、そのクラスタの シークレット が必要です。

  1. コマンドを実行してACMリソースを編集する。

    oc edit acmhub RESOURCE_NAME
    
  2. リソースの 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: "SECRET_NAME"
        secretnamespace: "SECRET_NAMESPACE" # The namespace that the secret was created in
        action: "Update"
    
  3. 変更を保存して適用します。

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アドオンを削除する手順に従ってください。

  1. ハブクラスタからACMリソースを削除します。

    oc delete acmhub RESOURCE_NAME
    
  2. リソースが削除されたら、ACMアドオンを削除する。 同じクラスタ ID を指定してください。

    ibmcloud oc cluster addon disable acm -f --cluster CLUSTER_ID