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

アドバンスド・クラスタ管理(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で管理するクラスタごとに、管理対象のクラスタのアクセストークンとサーバ URL を使用してハブクラスタ上にシークレットを作成する必要があります。 このステップは、インストールの前でも後でも構いません。 ACMのための秘密準備 」を参照。
  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
    

ACMのための秘密の準備

ACMで管理するクラスタごとに、管理対象のクラスタのアクセストークンとサーバ URL を含むシークレットをハブクラスタ上に作成する必要があります。

ACMアドオンのインストールプロセス中にマネージドクラスタをインポートする場合は、インストールを開始する前に以下の手順を完了してください。 アドオンをハブクラスタにインストールした後でシークレットの作成と管理クラスタのインポートを行う場合は、CLIで 追加の手順を 実行します。

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

  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で管理するクラスタをインポートするには、いくつかの方法がある。 クラスタをインポートする前に、 ACMに必要なシークレットが作成 されていることを確認してください。

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

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

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

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

    oc edit acmhub RESOURCE_NAME
    
  2. リソースの 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"
    
  3. 変更を保存して適用します。

OpenShift トークンと API サーバーを使用したマネージドクラスターのインポート URL

インポートするクラスタの OpenShift トークンと API サーバー URL を収集し、ACM コンソールを使用してクラスタをインポートします。

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

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

  3. ユーザー名のドロップダウンメニューをクリックします。 IAM#username. ドロップダウンから、 ログインコマンドをコピーをクリックします。

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

  5. ACMコンソールに移動します。 Infrastructure > Clusters > Import an existing clusterをクリックします。

  6. プロンプトに従ってクラスタをインポートし、パラメータセクションでAPIトークンとサーバ URL。

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

kubeconfigの詳細を収集し、ACMコンソールを使用してクラスタをインポートします。

  1. IBM Cloud CLIから以下のコマンドを実行して、インポートするクラスタのkubeconfigを取得します。 出力に表示されたkubeconfigファイルの内容を保存します。

    ibmcloud ks cluster config --cluster CLUSTER_NAME --admin --output yaml
    
  2. ACMコンソールに移動します。 Infrastructure > Clusters > Import an existing clusterをクリックします。

  3. プロンプトに従ってクラスタをインポートし、パラメータセクションにkubeconfigの内容を含めます。

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

ACMコンソールを使用してクラスタをインポートするコマンドを生成し、インポートするクラスタでそのコマンドを実行します。

  1. ACMコンソールに移動します。 Infrastructure > Clusters > Import an existing clusterをクリックします。
  2. インポートコマンドを生成するオプションを選択する。 コマンドをコピーする。
  3. IBM Cloud CLIにログインし、インポートするクラスタでコマンドを実行します。

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

ACMインスタンスからマネージドクラスタを削除または更新するには、ハブクラスタ上のACMカスタムリソースの managedClusters セクションを編集する必要があります。

  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: "managed-secret-2"
        secretnamespace: "managed-namespace-2" # 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