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

進階叢集管理 (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 附加元件的安裝過程中匯入受管理叢集,或計畫在安裝完成後透過 CLI 匯入受管理叢集,或是日後打算更新受管理叢集的連線憑證,則必須針對每個受管理叢集在樞紐叢集上建立一個祕密。 請參閱 《為 ACM 準備機密》。 若您僅計畫在安裝完成後,透過 OpenShift 網頁控制台匯入受管叢集,則無需執行此步驟。
  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
    

如果此指令執行失敗或無法被識別,您的 Kubernetes Service 外掛程式可能已過時。 執行 ibmcloud plugin update ks 將其更新至最新版本,然後請重新嘗試。

  1. 請確認已於叢集中建立受信任的設定檔機密。 此指令可能需要長達 10 分鐘才能完成。 請等待密鑰出現後,再繼續安裝 ACM 附加元件。 若在建立密鑰之前繼續進行,ACM 附加元件的安裝將會失敗。
    oc get secrets -n kube-system | grep ibm-cloud-credentials
    

為 ACM 準備秘密

為 ACM 建立密鑰是可選的。 您僅需在以下情況下填寫此部分:若您希望在 ACM 附加元件的安裝過程中匯入受管叢集;若您計畫 在安裝完成後透過 CLI 匯入受管叢集;或是若您計畫稍後 更新受管叢集的連線憑證。

如果您計劃在安裝完成後,透過 OpenShift 網頁控制台匯入受管叢集,且日後無需更新連線憑證,則無需建立機密。

對於每個您想要管理的叢集,請在樞紐叢集上完成以下步驟。

  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 網頁控制台 匯入受管叢集。

    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. 執行此指令以啟用此外掛程式。 請務必指定 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=["]
    選用。 在附加元件安裝過程中,包含此參數一次或多次以匯入受管群集。 您也可以稍後再完成此步驟。 如需更多資訊,請參閱 《 為 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 後,您可以透過 OpenShift 網頁控制台或 CLI 匯入受管叢集。 基於主機的方法不需要密鑰。 CLI 方法需要一個 密鑰。

所有由 ACM 管理的叢集都必須屬於某個叢集集。 您可以建立新的群集集,也可以將群集新增到 Default 群集集。 如果沒有指定叢集集,受管叢集就會加入 Default 選項。

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

請使用 OpenShift 網頁控制台產生一個匯入指令,然後在您要匯入的叢集上執行該指令。

  1. 開啟 ACM 樞紐叢集的 OpenShift 網頁控制台。

  2. 從「車隊管理」的角度來看,請點擊「匯入叢集」。

  3. 輸入叢集名稱,如有需要請選取叢集集,並在必要時輸入其他標籤。

  4. 在「匯入模式」中,請選取「手動執行匯入指令」,然後按一下「下一步」。

  5. 可選擇選取一個自動化範本,然後按一下「下一步」。

  6. 檢視詳細資訊,然後按一下「產生指令」。 請複製螢幕上顯示的指令。

  7. 請登入您要匯入的叢集,並使用針對該叢集所設定的 kubectl 來執行已複製的指令。

使用伺服器 URL 和 API 憑證匯入受管叢集

請先取得要匯入之叢集的 API 憑證及伺服器 URL,然後使用 OpenShift 網頁主控台 來匯入該叢集。

  1. 取得您要匯入之叢集的 API 憑證及伺服器 URL。

    1. 在 IBM Cloud 控制台中,導覽至您的 叢集清單,並點選您要匯入的叢集。

    2. 在叢集詳細資料頁面中,按一下 OpenShift Web 主控台。

    3. 點擊使用者名稱選單(格式為 IAM#username ),然後點擊「複製登入指令」。

    4. 點選「顯示代幣」。 找到以 oc login 開頭的指令,並儲存 API 令牌 (sha256~XXXX) 和伺服器 URL。

  2. 開啟 ACM 樞紐叢集的 OpenShift 網頁控制台。

  3. 從「車隊管理」的角度來看,請點擊「匯入叢集」。

  4. 輸入叢集名稱,如有需要請選取叢集集,並在必要時輸入其他標籤。

  5. 在 「匯入」模式下,請選擇「輸入您的伺服器 URL 以及現有叢集的 API 憑證」。 輸入伺服器 URL 以及您取得的 API 憑證,然後按一下「下一步」。

  6. 可選擇選取一個自動化範本,然後按一下「下一步」。

  7. 檢視詳細資訊,然後按下「匯入」。

使用 kubeconfig 匯入受管群集

請收集您要匯入之叢集的 kubeconfig 檔案,然後使用 OpenShift 網頁控制台 來匯入該叢集。

  1. 取得您要匯入的叢集的 kubeconfig 檔案。 在 IBM Cloud CLI 中,執行以下指令並儲存輸出結果。

    ibmcloud ks cluster config --cluster CLUSTER_NAME --admin --output yaml
    
  2. 開啟 ACM 樞紐叢集的 OpenShift 網頁控制台。

  3. 從「車隊管理」的角度來看,請點擊「匯入叢集」。

  4. 輸入叢集名稱,如有需要請選取叢集集,並在必要時輸入其他標籤。

  5. 在 「匯入」模式下,請選擇 「Kubeconfig」,並將您擷取的 kubeconfig 內容貼上,然後點擊「下一步」。

  6. 可選擇選取一個自動化範本,然後按一下「下一步」。

  7. 檢視詳細資訊,然後按下「匯入」。

從 Red Hat OpenShift 叢集管理員 匯入

「從 Red Hat OpenShift 叢集管理員匯入」的匯入模式僅支援部署於 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。 請注意,若要刪除群集,您不需要秘密或秘密命名空間。

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