为什么我无法查看或使用集群?
虚拟私有云 经典基础架构
找不到某个集群。 运行 ibmcloud ks cluster ls
时,输出中未列出该集群。
或者,您无法使用集群。 运行 ibmcloud ks 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
- 查找具有值为集群资源组的 Resource Group Name、值为 ** 或没有值的 **Service Name
containers-kubernetes
,以及值为 ** 的 **MemoPolicy applies to the resource(s) within the resource group
的策略。 如果具有此策略,说明您有权访问集群或有权访问资源组中的所有资源。 例如,以下策略指示用户有权访问test-rg
资源组中的集群: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
- 如果您同时拥有这两个策略,请跳至步骤 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
- 查找具有值为 ** 的 **Service Name
containers-kubernetes
以及值为集群标识的 Service Instance 的策略。 您可以通过运行ibmcloud ks cluster get --cluster <cluster_name>
来查找集群标识。 例如,以下策略指示用户有权访问特定集群:Policy ID: 140555ce-93ac-4fb2-b15d-6ad726795d90 Roles: Administrator Resources: Service Name containers-kubernetes Service Instance df253b6025d64944ab99ed63bb4567b6 Region Resource Type Resource
- 如果您有其中任一策略,请跳至步骤 4 的第二个项目符号点。 如果您没有任何一个策略,请跳至步骤 4 的第三个项目符号点。
- 查找除了 Policy ID 和 Roles 字段外不包含其他任何值的策略。 如果具有此策略,那么您有权访问集群,这是对整个帐户的访问权的一部分。 例如,以下策略指示用户有权访问帐户中的所有资源:
-
根据您的访问策略,选择下列其中一个选项。
- 检查您是否有权访问集群以及集群所在的资源组:
- 将资源组设定为目标。 注: 在更改此资源组之前,无法使用其他资源组中的集群。
ibmcloud target -g <resource_group>
- 将集群设定为目标。
ibmcloud ks cluster config --cluster <cluster_name_or_ID>
- 将资源组设定为目标。 注: 在更改此资源组之前,无法使用其他资源组中的集群。
- 如果您有权访问集群,但无权访问集群所在的资源组:
- 不要将资源组设定为目标。 如果您已将资源组作为目标,请除去该目标。
ibmcloud target --unset-resource-group
- 将集群设定为目标。
ibmcloud ks cluster config --cluster <cluster_name_or_ID>
- 不要将资源组设定为目标。 如果您已将资源组作为目标,请除去该目标。
- 如果您无权访问集群:
- 请求帐户所有者为该集群向您分配 IBM Cloud IAM 平台访问角色。
- 不要将资源组设定为目标。 如果您已将资源组作为目标,请除去该目标。
ibmcloud target --unset-resource-group
- 将集群设定为目标。
ibmcloud ks cluster config --cluster <cluster_name_or_ID>
- 检查您是否有权访问集群以及集群所在的资源组: