設定進階叢集管理附加元件

進階叢集管理 (ACM) 附加元件提供簡化的方式,讓客戶跨多個叢集管理監控、工作負載放置和安全政策。

IBM Cloud 群集不支援從 OperatorHub 安裝 ACM。 若要安裝 ACM,請遵循本頁面的指示。

您安裝 ACM 的群集是集線器群集。 在安裝期間或之後,您可以指定多個受管群集,以便使用 ACM 進行管理。

開始之前

在安裝 ACM 附加元件之前,請檢閱下列先決步驟和資訊。

  1. 確保您的叢集符合下列要求。
    • 您的集線器群集必須是 VPC 群集,至少有 3 個執行 RHCOS 的工作節點,以及至少 6 個 VCPU 和 64GB RAM。 為了達到高可用性,請確保您的群集在 3 個區域中,每個區域至少有一個工作站節點。
    • 每個管理群集必須至少有 3 個執行 RHCOS 的工作節點,以及至少 6 個 VCPU 和 64GB RAM
  2. 檢視 ACM 附加元件 自動安裝的操作員,以及您可以作為增強功能安裝 的選用操作員
  3. 您必須擁有 IBM Cloud Kubernetes Service 中叢集的 管理員平台存取角色和管理員服務存取角色
  4. 您必須擁有至少 3 個工作節點的 VPC 集群。 每個 Worker 節點必須至少有 4 個 CPU 和 16GB RAM。 為了達到高可用性,請確保您的群集在 3 個區域中,每個區域至少有一個工作站節點。
  5. 在群集上建立可信任的設定檔,以用於 ACM
  6. 對於您要使用 ACM 管理的每個群集,您必須在集線器群集上以受管理群集的存取權限和伺服器 URL 建立一個秘密。 此步驟可以在安裝之前或之後完成。 請參閱 為 ACM 準備秘密
  7. 安裝或更新 CLI

為 ACM 建立受信任的設定檔

請依照以下步驟建立一個可用於 ACM 的受信任設定檔,並將其指派給樞紐叢集。

一旦將受信任的設定檔新增至叢集,便無法移除,且您將無法再使用 API 金鑰來存取您的資源。 請務必仔細遵循以下步驟,以確保您的「受信任」個人資料已正確設定。

使用使用者介面建立受信任的個人檔案

  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。 在輸出中,找到並記下 Master 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 文件中的 使用機密

    秘密範例。

    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
    

透過使用者介面安裝 ACM

使用使用者介面將 ACM 附加元件和 ACM 操作員安裝到集線器群集。

  1. 如果您要在安裝過程中匯入一個或多個受管群集來使用 ACM 管理,請按照 為 ACM 準備機密 的步驟,在集線器群集上建立所需的機密。 儲存秘密名稱和命名空間。 您也可以暫時跳過此步驟,在安裝程序之後完成,但需要額外的 CLI 步驟。

  2. 登入 IBM Cloud 主控台,並導航至您的 群集頁面。 按一下要安裝 ACM 的群集。

  3. 從群集詳細資訊頁面,找到附加元件區段。

  4. Available to install(可安裝 )下,找到 Red Hat Advanced Cluster Management(進階群集管理 )選項,然後按一下 Install(安裝 )。

  5. 在安裝頁面中,選擇要安裝的 ACM 附加元件版本。

  6. 選擇要匯入受管群集的方式。 若要在安裝附加元件後匯入群集,請選擇從 CLI 匯入。 如果您在集線器群集上建立了所需的機密,並且想要現在匯入受管群集,請選擇立即匯入

    您只能在安裝過程中使用 IBM Cloud 使用者介面來匯入受管叢集。 在集線器叢集中安裝 ACM 附加元件後,即可 使用 CLI 或 OpenShift Web 控制台 匯入受管叢集。

    1. 如果您選擇立即匯入選項,請在彈出式功能表中按一下匯入群組
    2. 若要匯入帳戶中已存在的群集,請選取群集並輸入秘訣名稱和命名空間。 然後按下一步
    3. 若要匯入跨帳戶或外部群集,請指定群集 ID、密碼名稱和密碼命名空間。 接著,請按一下「匯入叢集」。
  7. 按一下建立

  8. 確認群集上已安裝附加元件。

    1. 導覽到 OpenShift Web Console Multicluster Hub。
    2. 從下拉式導覽功能表中,選擇「車隊管理」。
    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. 如果您想要匯入群集,以便由附加元件管理,如果您還沒有這麼做,請遵循 為 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=["]
    選用。 在附加元件安裝過程中,包含此參數一次或多次以匯入受管群集。 您也可以稍後再完成此步驟。 如需更多資訊,請參閱 《 為 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 虛擬化操作程式
潛航者 潛航者

安裝 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 主控台

  3. 按一下使用者名稱下拉選項,顯示格式為 IAM#username。 從下拉式選單中,按一下複製登入指令

  4. 按一下顯示標記,以顯示您的登入指令。 找到以 oc login 開頭的指令,並儲存 API 令牌 (sha256~XXXX) 和伺服器 URL。

  5. 導覽到 ACM 主控台。 按一下基礎結構 > 群集 > 匯入現有群集

  6. 按照提示匯入群集,並在參數部分指定 API 令牌和伺服器 URL。

使用 kubeconfig 匯入受管群集

收集您的 kubeconfig 詳細資訊,然後使用 ACM 主控台匯入群集。

  1. 從 IBM Cloud CLI 執行下列指令,以取得您要匯入的群集的 kubeconfig。 儲存輸出中顯示的 kubeconfig 檔案內容。

    ibmcloud ks cluster config --cluster CLUSTER_NAME --admin --output yaml
    
  2. 導覽到 ACM 主控台。 按一下基礎結構 > 群集 > 匯入現有群集

  3. 按照提示匯入您的群集,並將 kubeconfig 內容包含在參數部分。

使用產生的指令匯入受管群集

使用 ACM 主控台產生匯入群集的指令,然後在要匯入的群集上執行該指令。

  1. 導覽到 ACM 主控台。 按一下基礎結構 > 群集 > 匯入現有群集
  2. 選擇選項以產生匯入指令。 複製指令。
  3. 登入 IBM Cloud CLI,並在要匯入的群集上執行指令。

更新或移除受管群集

若要從 ACM 實例移除或更新受管群集,您必須編輯集線器群集上 ACM 自訂資源的 managedClusters 區段。

  1. 執行指令編輯 ACM 資源。

    oc edit acmhub RESOURCE_NAME
    
  2. 在資源的 managedClusters 區段中,新增群集 ID、為 ACM 建立的群集秘訣名稱、秘訣的命名空間,以及您要為群集執行的動作。 格式請參閱以下範例。 對於動作,請指定 DeleteUpdate。 請注意,若要刪除群集,您不需要秘密或秘密命名空間。

    以下範例會刪除 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