設定進階叢集管理附加元件
進階叢集管理 (ACM) 附加元件提供簡化的方式,讓客戶跨多個叢集管理監控、工作負載放置和安全政策。
IBM Cloud 群集不支援從 OperatorHub 安裝 ACM。 若要安裝 ACM,請遵循本頁面的指示。
您安裝 ACM 的群集是集線器群集。 在安裝期間或之後,您可以指定多個受管群集,以便使用 ACM 進行管理。
開始之前
在安裝 ACM 附加元件之前,請檢閱下列先決步驟和資訊。
- 確保您的叢集符合下列要求。
- 您的集線器群集必須是 VPC 群集,至少有 3 個執行 RHCOS 的工作節點,以及至少 6 個 VCPU 和 64GB RAM。 為了達到高可用性,請確保您的群集在 3 個區域中,每個區域至少有一個工作站節點。
- 每個管理群集必須至少有 3 個執行 RHCOS 的工作節點,以及至少 6 個 VCPU 和 64GB RAM。
- 檢視 ACM 附加元件 自動安裝的操作員,以及您可以作為增強功能安裝 的選用操作員。
- 您必須擁有 IBM Cloud Kubernetes Service 中叢集的 管理員平台存取角色和管理員服務存取角色。
- 您必須擁有至少 3 個工作節點的 VPC 集群。 每個 Worker 節點必須至少有 4 個 CPU 和 16GB RAM。 為了達到高可用性,請確保您的群集在 3 個區域中,每個區域至少有一個工作站節點。
- 在群集上建立可信任的設定檔,以用於 ACM。
- 可選:若您希望在 ACM 附加元件的安裝過程中匯入受管理叢集,或計畫在安裝完成後透過 CLI 匯入受管理叢集,或是日後打算更新受管理叢集的連線憑證,則必須針對每個受管理叢集在樞紐叢集上建立一個祕密。 請參閱 《為 ACM 準備機密》。 若您僅計畫在安裝完成後,透過 OpenShift 網頁控制台匯入受管叢集,則無需執行此步驟。
- 安裝或更新 CLI。
為 ACM 建立受信任的設定檔
請依照以下步驟建立一個可用於 ACM 的受信任設定檔,並將其指派給樞紐叢集。
一旦將受信任的設定檔新增至叢集,便無法移除,且您將無法再使用 API 金鑰來存取您的資源。 請務必仔細遵循以下步驟,以確保您的「受信任」個人資料已正確設定。
使用使用者介面建立受信任的個人檔案
-
按照步驟 建立受信任的設定檔。 在設定檔的條件中,請務必指定下列存取。
- 運算資源:Red Hat OpenShift
- 所有服務資源
- 當命名空間等於
kube-system - Kubernetes Service 角色 - 經理、編輯
-
建立受信任的設定檔後,從主控台的受信任的設定檔頁面複製 ID。
使用 CLI 建立受信任的設定檔
- 建立受信任的設定檔。
ibmcloud iam trusted-profile-create acm-operator-profile - 建立運算資源信任規則,其作用範圍限於 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 - 將 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
設定叢集的可信憑證設定檔
- 取得受信任的設定檔 ID。
ibmcloud iam trusted-profiles - 將受信任的設定檔指派給叢集。
ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID
如果此指令執行失敗或無法被識別,您的 Kubernetes Service 外掛程式可能已過時。 執行 ibmcloud plugin update ks 將其更新至最新版本,然後請重新嘗試。
- 請確認已於叢集中建立受信任的設定檔機密。 此指令可能需要長達 10 分鐘才能完成。 請等待密鑰出現後,再繼續安裝 ACM 附加元件。 若在建立密鑰之前繼續進行,ACM 附加元件的安裝將會失敗。
oc get secrets -n kube-system | grep ibm-cloud-credentials
為 ACM 準備秘密
為 ACM 建立密鑰是可選的。 您僅需在以下情況下填寫此部分:若您希望在 ACM 附加元件的安裝過程中匯入受管叢集;若您計畫 在安裝完成後透過 CLI 匯入受管叢集;或是若您計畫稍後 更新受管叢集的連線憑證。
如果您計劃在安裝完成後,透過 OpenShift 網頁控制台匯入受管叢集,且日後無需更新連線憑證,則無需建立機密。
對於每個您想要管理的叢集,請在樞紐叢集上完成以下步驟。
-
在要使用 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> ... -
取得 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 -
使用上一步驟取得之端點來取得存取憑證。 執行以下 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 ... -
在集線器群集上,建立包含群集存取標記和伺服器 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 操作員安裝到集線器群集。
-
如果您要在安裝過程中匯入一個或多個受管群集來使用 ACM 管理,請按照 為 ACM 準備機密 的步驟,在集線器群集上建立所需的機密。 儲存秘密名稱和命名空間。 您也可以暫時跳過此步驟,在安裝程序之後完成,但需要額外的 CLI 步驟。
-
登入 IBM Cloud 主控台,並導航至您的 群集頁面。 按一下要安裝 ACM 的群集。
-
從群集詳細資訊頁面,找到附加元件區段。
-
在 Available to install(可安裝 )下,找到 Red Hat Advanced Cluster Management(進階群集管理 )選項,然後按一下 Install(安裝 )。
-
在安裝頁面中,選擇要安裝的 ACM 附加元件版本。
-
選擇要匯入受管群集的方式。 若要在安裝附加元件後匯入群集,請選擇從 CLI 匯入。 如果您在集線器群集上建立了所需的機密,並且想要現在匯入受管群集,請選擇立即匯入。
您只能在安裝過程中使用 IBM Cloud 使用者介面來匯入受管叢集。 在集線器叢集中安裝 ACM 附加元件後,即可 使用 CLI 或 OpenShift 網頁控制台 匯入受管叢集。
- 如果您選擇立即匯入選項,請在彈出式功能表中按一下匯入群組。
- 若要匯入帳戶中已存在的群集,請選取群集並輸入秘訣名稱和命名空間。 然後按下一步。
- 若要匯入跨帳戶或外部群集,請指定群集 ID、密碼名稱和密碼命名空間。 接著,請按一下「匯入叢集」。
-
按一下建立。
-
確認群集上已安裝附加元件。
- 導覽到 OpenShift Web Console Multicluster Hub。
- 從下拉式導覽功能表中,選擇「車隊管理」。
- 找到您的群集清單,檢查您的群集是否以 Hub 控制平面類型列出。
-
選購:檢視您可以安裝的 額外操作員,以增強 ACM 功能。
透過命令列介面 (CLI) 安裝 ACM
使用 CLI 在集線器群集上安裝 ACM 附加元件。
-
尋找 ACM 附加元件的預設版本。
ibmcloud oc cluster addon versions -
檢視 ACM 附加選項。 在命令中,指定在上一步中找到的預設版本。 請在安裝附加元件時,註記您想要包含的任何選項。
ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION -
如果您想要匯入群集,以便由附加元件管理,如果您還沒有這麼做,請遵循 為 ACM 準備秘密 中的步驟。 請務必儲存群集 ID 以及您在集線器群集上建立的秘密的名稱和命名空間。 您也可以在集線器群集上安裝附加元件後再完成此程序,不過需要額外的步驟才能 安裝後匯入管理群集。
-
執行此指令以啟用此外掛程式。 請務必指定
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以接受所選計費計劃的授權合約。 接受本授權即表示您同意適用的條款與條件,並確認您瞭解所選計劃中包含的服務。
-
確認附加元件已安裝。 附加元件可能需要幾分鐘才能在下列輸出中顯示。
- 在集線器群集上,檢查是否已建立
acmhub資源。
oc get acmhub ``` 輸出範例。 ```sh {: screen} NAME AGE acm-auto 1h ``` 2. 在集線器群集上,檢查 `acmhub` 狀態。 ```sh {: pre} oc describe acmhubstatus ``` 輸出範例。 ```sh {: screen} status phase: Ready ``` - 在集線器群集上,檢查是否已建立
-
選購:檢視您可以安裝的 額外操作員,以增強 ACM 功能。
ACM 操作員
檢視 ACM 附加元件自動安裝的操作員,以及您可以作為增強功能安裝的選用操作員。
自動安裝的操作員
當您安裝 ACM 附加元件時,下列操作員會自動安裝在您的集線器群集或受管群集上。
| 操作員 | 說明 |
|---|---|
| 進階叢集管理 (ACM) 操作員 | 安裝在集線器上。 |
| MultiCluster 引擎操作員 | 由 ACM 操作員安裝在受管理的群集上。 |
可選操作員
下列操作員為選購品,可安裝於集線器群集或受管群集,以增強 ACM 功能。 請注意,IBM 不負責管理這些操作員。
您有責任管理這些操作員,包括但不限於更新、監控、復原和重新安裝。
| 操作員 | 說明 | 其他資訊 |
|---|---|---|
| GitOps 操作員 |
|
GitOps 概述 |
| Red Hat OpenShift 虛擬化操作員 |
|
安裝 OpenShift 虛擬化操作程式 |
| 潛航者 |
|
潛航者 |
安裝 ACM 後匯入受管群集
安裝 ACM 後,您可以透過 OpenShift 網頁控制台或 CLI 匯入受管叢集。 基於主機的方法不需要密鑰。 CLI 方法需要一個 密鑰。
所有由 ACM 管理的叢集都必須屬於某個叢集集。 您可以建立新的群集集,也可以將群集新增到 Default 群集集。 如果沒有指定叢集集,受管叢集就會加入 Default 選項。
使用產生的指令匯入受管群集
請使用 OpenShift 網頁控制台產生一個匯入指令,然後在您要匯入的叢集上執行該指令。
-
開啟 ACM 樞紐叢集的 OpenShift 網頁控制台。
-
從「車隊管理」的角度來看,請點擊「匯入叢集」。
-
輸入叢集名稱,如有需要請選取叢集集,並在必要時輸入其他標籤。
-
在「匯入模式」中,請選取「手動執行匯入指令」,然後按一下「下一步」。
-
可選擇選取一個自動化範本,然後按一下「下一步」。
-
檢視詳細資訊,然後按一下「產生指令」。 請複製螢幕上顯示的指令。
-
請登入您要匯入的叢集,並使用針對該叢集所設定的
kubectl來執行已複製的指令。
使用伺服器 URL 和 API 憑證匯入受管叢集
請先取得要匯入之叢集的 API 憑證及伺服器 URL,然後使用 OpenShift 網頁主控台 來匯入該叢集。
-
取得您要匯入之叢集的 API 憑證及伺服器 URL。
-
在 IBM Cloud 控制台中,導覽至您的 叢集清單,並點選您要匯入的叢集。
-
在叢集詳細資料頁面中,按一下 OpenShift Web 主控台。
-
點擊使用者名稱選單(格式為
IAM#username),然後點擊「複製登入指令」。 -
點選「顯示代幣」。 找到以
oc login開頭的指令,並儲存 API 令牌 (sha256~XXXX) 和伺服器 URL。
-
-
開啟 ACM 樞紐叢集的 OpenShift 網頁控制台。
-
從「車隊管理」的角度來看,請點擊「匯入叢集」。
-
輸入叢集名稱,如有需要請選取叢集集,並在必要時輸入其他標籤。
-
在 「匯入」模式下,請選擇「輸入您的伺服器 URL 以及現有叢集的 API 憑證」。 輸入伺服器 URL 以及您取得的 API 憑證,然後按一下「下一步」。
-
可選擇選取一個自動化範本,然後按一下「下一步」。
-
檢視詳細資訊,然後按下「匯入」。
使用 kubeconfig 匯入受管群集
請收集您要匯入之叢集的 kubeconfig 檔案,然後使用 OpenShift 網頁控制台 來匯入該叢集。
-
取得您要匯入的叢集的 kubeconfig 檔案。 在 IBM Cloud CLI 中,執行以下指令並儲存輸出結果。
ibmcloud ks cluster config --cluster CLUSTER_NAME --admin --output yaml -
開啟 ACM 樞紐叢集的 OpenShift 網頁控制台。
-
從「車隊管理」的角度來看,請點擊「匯入叢集」。
-
輸入叢集名稱,如有需要請選取叢集集,並在必要時輸入其他標籤。
-
在 「匯入」模式下,請選擇 「Kubeconfig」,並將您擷取的 kubeconfig 內容貼上,然後點擊「下一步」。
-
可選擇選取一個自動化範本,然後按一下「下一步」。
-
檢視詳細資訊,然後按下「匯入」。
從 Red Hat OpenShift 叢集管理員 匯入
「從 Red Hat OpenShift 叢集管理員匯入」的匯入模式僅支援部署於 AWS ( ROSA )上的 Red Hat OpenShift Service 叢集,不適用於 IBM Cloud 叢集。
使用 CLI 匯入受管群集
使用 CLI 匯入方法時,您必須已在樞紐叢集中為受管叢集 建立一個祕密。
若要使用 CLI 匯入受管理的群集,請編輯 ACM 資源以包含要管理的群集。
-
執行指令編輯 ACM 資源。
oc edit acmhub RESOURCE_NAME -
在資源的
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" -
儲存並套用變更。
更新或移除受管群集
若要將受管叢集從 ACM 實例中移除,或更新 ACM 針對受管叢集的連線憑證(例如在令牌輪替或伺服器 URL 變更之後),您必須在樞紐叢集上的 ACM 自訂資源中編輯 managedClusters 區段。 Update 動作會重新整理 ACM 用於與受管叢集通訊的基於機密憑證。 這與升級叢集的 OpenShift 版本並不相同。
若要更新受管叢集的連線憑證,必須具備該叢集的 機密。
-
執行指令編輯 ACM 資源。
oc edit acmhub RESOURCE_NAME -
在資源的
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" -
儲存並套用變更。
升級 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