【问题标题】:Error loading Namespaces. Unauthorized: Verify you have access to the Kubernetes cluster加载命名空间时出错。未经授权:验证您有权访问 Kubernetes 集群
【发布时间】:2021-03-15 10:42:48
【问题描述】:

我已经使用命令行 eksctl 创建了一个 EKS 集群,并验证了应用程序工作正常。

但注意到一个奇怪的问题,当我尝试在 Web 浏览器中访问集群中的节点时,我看到以下错误

Error loading Namespaces
Unauthorized: Verify you have access to the Kubernetes cluster

我可以看到使用 kubectl get nodes 的节点

我以管理员用户身份登录。关于如何解决这个问题的任何帮助都会非常棒。谢谢。

【问题讨论】:

  • 我怀疑这个问题更适合亚马逊支持。
  • @AlexYu 我也向支持人员提出了要求,但只是想知道是否有人已经遇到过类似的情况。
  • @opensource-developer 我也看到了这个问题。
  • @opensource-developer 能够看到 ui 中的配置并通过 cli 访问命名空间,所以我认为这只是 eks 仪表板上显示命名空间时的一个错误。
  • @SalehRastani 我同意这可能是 eks 仪表板错误。我得到了同样的“错误”,但它似乎并没有阻止我做任何事情(还)。

标签: amazon-web-services kubernetes amazon-eks


【解决方案1】:

您需要将您的 IAM 角色/用户添加到集群的 aws-auth 配置映射

基本步骤来自https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html

kubectl edit -n kube-system configmap/aws-auth
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
  mapRoles: |
    - rolearn: <arn:aws:iam::111122223333:role/eksctl-my-cluster-nodegroup-standard-wo-NodeInstanceRole-1WP3NUE3O6UCF>
      username: <system:node:{{EC2PrivateDNSName}}>
      groups:
        - <system:bootstrappers>
        - <system:nodes>
  mapUsers: |
    - userarn: <arn:aws:iam::111122223333:user/admin>
      username: <admin>
      groups:
        - <system:masters>
    - userarn: <arn:aws:iam::111122223333:user/ops-user>
      username: <ops-user>
      groups:
        - <system:masters>

【讨论】:

  • 是否经过验证的解决方案?我正在使用 SSO,我尝试了这个解决方案,也许我在某个地方犯了错误,但我仍然得到同样的错误。
  • 我已经验证了这一点,也得到了 AWS Support 的相同回复。这个解决方案应该可以工作。
  • 我这里也有同样的问题。有趣的是,正如以下答案中所建议的那样,许多用户同时发生了这种情况。您知道 AWS 最近是否对此进行了更改?无论如何,谢谢你,我会尝试这个解决方案
【解决方案2】:

也看到此错误,它是由 EKS 的最新添加引入的,请参阅 https://aws.amazon.com/blogs/containers/introducing-the-new-amazon-eks-console/

从那时起,控制台代表您登录的用户或角色向 EKS 发出请求。

所以请确保kube-system:aws-auth configmap 添加了该用户或角色。

此用户/角色可能与您在本地通过 AWS CLI 使用的不同,因此 kubectl 可能会在您仍然看到该错误时工作!

【讨论】:

    【解决方案3】:

    Amazon 最近 (2020.12) 添加了新功能,允许您从 Aws Console 浏览集群内部的工作负载。

    如果您错过了权限,您将收到该错误。 这里描述了需要什么权限 https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html#policy_example3

    【讨论】:

      【解决方案4】:

      这也可能是因为您创建 AWS EKS 集群时使用的 IAM 用户与当前登录 AWS 管理控制台的用户不同,因此当前登录 AWS 管理控制台的 IAM 用户无权查看其上的命名空间AWS EKS 集群。

      尝试使用创建 AWS EKS 集群的用户的 IAM 用户凭证登录 AWS 管理控制台,该问题应该得到解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 2020-05-24
        • 2020-05-05
        • 2019-06-04
        • 2015-03-05
        • 2011-04-17
        相关资源
        最近更新 更多