IBM Cloud 中叢集存取問題的疑難排解 Kubernetes
請檢查您的使用者存取權限及資源群組設定,以解決在檢視或操作您的 IBM Cloud Kubernetes 叢集時所遇到的問題。
虛擬私有雲 經典基礎架構
您找不到叢集。 當您執行 ibmcloud oc cluster ls`` 時,輸出結果中並未列出該叢集。 或者,您無法與群組合作。 當您執行 ibmcloud oc cluster config 或其他與叢集相關的指令時,系統無法找到該叢集。
在 IBM Cloud 中,每個資源都必須位於資源群組中。 例如,叢集 mycluster 可能存在於 default 資源群組中。
當帳戶擁有者透過指派您「IBM Cloud」IAM 平台存取角色,來授予您對資源的存取權限時,該存取權限可能針對特定資源,也可能針對資源群組。 當您獲授與特定資源的存取權時,則無法存取資源群組。 在此情況下,您不需要將目標設為資源群組,即可使用您可以存取的叢集。 如果您的目標資源群組與叢集所在的群組不同,則該叢集的動作可能會失敗。 反之,當您在存取資源群組過程中獲授與資源的存取權時,必須將目標設為資源群組,才能使用該群組中的叢集。 如果您未將 CLI 階段作業的目標設為叢集所在的資源群組,則該叢集的動作可能會失敗。
如果您無法找到或使用叢集,您可能遇到以下其中一個問題:
- 您可以存取叢集及叢集所在的資源群組,但 CLI 階段作業的目標不是叢集所在的資源群組。
- 您可以存取叢集,但不是叢集所在資源群組的一部分。 CLI 階段作業的目標設為這個或另一個資源群組。
- 您沒有叢集的存取權。
若要檢查使用者存取權,請執行下列動作:
-
請列出您所有的使用者權限。
ibmcloud iam user-policies <your_user_name> -
檢查您是否可以存取叢集及叢集所在的資源群組。
- 尋找具有下列項目的原則:Resource Group Name 值為叢集資源群組,且 Memo 值為
Policy applies to the resource group。 如果您具有此原則,則可以存取資源群組。 例如,以下政策表示某位使用者具有存取test-rg資源群組的權限:
Policy ID: 3ec2c069-fc64-4916-af9e-e6f318e2a16c Roles: Viewer Resources: Resource Group ID 50c9b81c983e438b8e42b2e8eca04065 Resource Group Name test-rg Memo Policy applies to the resource group ``` 2. 尋找具有下列項目的原則:**Resource Group Name** 值為叢集資源群組、**Service Name** 值為 `containers-kubernetes` 或沒有值,且 **Memo** 值為 `Policy applies to the resource(s) within the resource group`。 若您擁有此權限政策,即可存取叢集或資源群組內的全部資源。 例如,以下政策表示某位使用者可存取位於「`test-rg`」資源群組中的叢集: ```sh {: screen} Policy ID: e0ad889d-56ba-416c-89ae-a03f3cd8eeea Roles: Administrator Resources: Resource Group ID a8a12accd63b437bbd6d58fb6a462ca7 Resource Group Name test-rg Service Name containers-kubernetes Service Instance Region Resource Type Resource Memo Policy applies to the resource(s) within the resource group ``` 3. 如果您具有這兩個原則,則請跳到步驟 4(第一個項目符號)。 如果您沒有步驟 2a 中的原則,但您具有步驟 2b 中的原則,則請跳到步驟 4(第二個項目符號)。 若您沒有這兩項保單中的任何一項,請繼續進行至第 3 步。 - 尋找具有下列項目的原則:Resource Group Name 值為叢集資源群組,且 Memo 值為
-
檢查您是否可以存取叢集,但不是作為叢集所在資源群組存取權的一部分。
- 尋找沒有 Policy ID 及 Roles 欄位以外值的原則。 如果您具有此原則,則可以在存取整個帳戶的過程中存取叢集。 例如,以下政策表示某位使用者可存取該帳戶中的所有資源:
Policy ID: 8898bdfd-d520-49a7-85f8-c0d382c4934e Roles: Administrator, Manager Resources: Service Name Service Instance Region Resource Type Resource ``` 2. 尋找具有下列項目的原則:**Service Name** 值為 `containers-kubernetes`,且 **Service Instance** 值為叢集 ID。 您可以執行 ` `ibmcloud oc cluster get --cluster <cluster_name>`` 來查詢叢集 ID。 例如,以下政策表示某位使用者具有存取特定叢集的權限: ```sh {: screen} Policy ID: 140555ce-93ac-4fb2-b15d-6ad726795d90 Roles: Administrator Resources: Service Name containers-kubernetes Service Instance df253b6025d64944ab99ed63bb4567b6 Region Resource Type Resource ``` 3. 如果您具有其中一個原則,請跳至步驟 4 的第二個項目符號點。 如果您沒有其中一個原則,請跳至步驟 4 的第三個項目符號點。 -
根據您的存取原則,選擇下列其中一個選項。
- 如果您可以存取叢集及叢集所在的資源群組,請執行下列動作:
- 將目標設為資源群組。 在變更此資源群組之前,您無法在其他資源群組中使用叢集。
ibmcloud target -g <resource_group> - 將目標設為叢集。
ibmcloud oc cluster config --cluster <cluster_name_or_ID>
- 將目標設為資源群組。 在變更此資源群組之前,您無法在其他資源群組中使用叢集。
- 如果您可以存取叢集但無法存取叢集所在的資源群組,請執行下列動作:
- 不要將資源群組設為目標。 如果您已設定資源群組的目標,請移除目標。
ibmcloud target --unset-resource-group - 將目標設為叢集。
ibmcloud oc cluster config --cluster <cluster_name_or_ID>
- 不要將資源群組設為目標。 如果您已設定資源群組的目標,請移除目標。
- 如果您無法存取該叢集:
- 請您的帳戶擁有者為您指派該叢集的「IBM Cloud」IAM 平台存取角色。
- 不要將資源群組設為目標。 如果您已設定資源群組的目標,請移除目標。
ibmcloud target --unset-resource-group - 將目標設為叢集。
ibmcloud oc cluster config --cluster <cluster_name_or_ID>
- 如果您可以存取叢集及叢集所在的資源群組,請執行下列動作: