IBM Cloud Docs
为什么我无法查看或使用集群?

为什么我无法查看或使用集群?

虚拟私有云 经典基础架构

找不到某个集群。 运行 ibmcloud ks cluster ls 时,输出中未列出该集群。

或者,您无法使用集群。 运行 ibmcloud ks cluster config 或其他特定于集群的命令时,找不到该集群。

在 IBM Cloud 中,每个资源都必须位于资源组中。 例如,集群 mycluster 可能存在于 default 资源组中。

当帐户所有者通过为您分配 IBM Cloud IAM 平台访问角色来授予您对资源的访问权时,该访问权可以是对特定资源或资源组的访问权。 授予您对特定资源的访问权时,您无权访问资源组。 在这种情况下,您无需将资源组设定为目标就可以使用您有权访问的集群。 如果设定为目标的资源组不是集群所在的资源组,那么针对该集群的操作会失败。 反之,授予您对资源的访问权以作为对资源组访问权的一部分时,必须将资源组设定为目标,才能使用该组中的集群。 如果未将 CLI 会话的目标设定为集群所在的资源组,那么针对该集群的操作会失败。

如果找不到或无法使用集群,那么您可能迂到以下某个问题:

  • 您有权访问集群和集群所在的资源组,但 CLI 会话的目标未设定为集群所在的资源组。
  • 您有权访问集群,但无权访问集群所在的资源组。 CLI 会话的目标设定为此资源组或其他资源组。
  • 您无权访问集群。

要检查用户访问许可权,请执行以下操作:

  1. 列出您的所有用户许可权。

    ibmcloud iam user-policies <your_user_name>
    
  2. 检查您是否有权访问集群以及集群所在的资源组。

    1. 查找具有值为集群资源组的 Resource Group Name 以及值为 ** 的 **MemoPolicy 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 Namecontainers-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
      
    3. 如果您同时拥有这两个策略,请跳至步骤 4 的第一个项目符号项。 如果您没有步骤 2a 中的策略,但确实有步骤 2b 中的策略,请跳至步骤 4 的第二个项目符号项。 如果您没有任何一个策略,请继续执行步骤 3。
  3. 检查您是否有权访问集群,但无权访问集群所在的资源组。

    1. 查找除了 Policy IDRoles 字段外不包含其他任何值的策略。 如果具有此策略,那么您有权访问集群,这是对整个帐户的访问权的一部分。 例如,以下策略指示用户有权访问帐户中的所有资源:
      Policy ID:   8898bdfd-d520-49a7-85f8-c0d382c4934e
      Roles:       Administrator, Manager
      Resources:
      Service Name
      Service Instance
      Region
      Resource Type
      Resource
      
    2. 查找具有值为 ** 的 **Service Namecontainers-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
      
    3. 如果您有其中任一策略,请跳至步骤 4 的第二个项目符号点。 如果您没有任何一个策略,请跳至步骤 4 的第三个项目符号点。
  4. 根据您的访问策略,选择下列其中一个选项。

    • 检查您是否有权访问集群以及集群所在的资源组:
      1. 将资源组设定为目标。 : 在更改此资源组之前,无法使用其他资源组中的集群。
        ibmcloud target -g <resource_group>
        
      2. 将集群设定为目标。
        ibmcloud ks cluster config --cluster <cluster_name_or_ID>
        
    • 如果您有权访问集群,但无权访问集群所在的资源组:
      1. 不要将资源组设定为目标。 如果您已将资源组作为目标,请除去该目标。
        ibmcloud target --unset-resource-group
        
      2. 将集群设定为目标。
        ibmcloud ks cluster config --cluster <cluster_name_or_ID>
        
    • 如果您无权访问集群:
      1. 请求帐户所有者为该集群向您分配 IBM Cloud IAM 平台访问角色
      2. 不要将资源组设定为目标。 如果您已将资源组作为目标,请除去该目标。
        ibmcloud target --unset-resource-group
        
      3. 将集群设定为目标。
        ibmcloud ks cluster config --cluster <cluster_name_or_ID>