加载命名空间时出错。未授权:验证您是否有权访问 Kubernetes 集群
Error loading Namespaces. Unauthorized: Verify you have access to the Kubernetes cluster
我已经使用命令行 eksctl 创建了一个 EKS 集群,并验证了该应用程序运行正常。
但注意到一个奇怪的问题,当我尝试在网络浏览器中访问集群中的节点时,我看到以下错误
Error loading Namespaces
Unauthorized: Verify you have access to the Kubernetes cluster
我可以使用 kubectl get nodes
查看节点
我以管理员用户身份登录。任何关于如何解决这个问题的帮助都会非常有用。谢谢
Amazon 最近 (2020.12) 添加了新功能,允许您从 Aws 控制台浏览 inside 集群中的工作负载。
如果您错过权限,您将收到该错误消息。
这里描述了需要什么权限
https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html#policy_example3
您需要将 IAM role/user 添加到集群的 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>
也看到了这个错误,它是由 EKS 的最新添加引入的,请参阅 https://aws.amazon.com/blogs/containers/introducing-the-new-amazon-eks-console/
从那时起,控制台代表您登录的用户或角色向 EKS 发出请求。
因此请确保 kube-system:aws-auth
configmap 添加了该用户或角色。
这个 user/role 可能与您在本地使用 AWS CLI 时使用的不一样,因此 kubectl 可能会在您仍然看到该错误的情况下工作!
这也可能是因为您使用与当前登录到 AWS 管理控制台的用户不同的 IAM 用户创建了 AWS EKS 集群,因此当前登录到 AWS 管理控制台的 IAM 用户无权查看AWS EKS 集群上的命名空间。
尝试使用创建 AWS EKS 集群的用户的 IAM 用户凭证登录 AWS 管理控制台,问题应该已解决。
我已经使用命令行 eksctl 创建了一个 EKS 集群,并验证了该应用程序运行正常。
但注意到一个奇怪的问题,当我尝试在网络浏览器中访问集群中的节点时,我看到以下错误
Error loading Namespaces
Unauthorized: Verify you have access to the Kubernetes cluster
我可以使用 kubectl get nodes
我以管理员用户身份登录。任何关于如何解决这个问题的帮助都会非常有用。谢谢
Amazon 最近 (2020.12) 添加了新功能,允许您从 Aws 控制台浏览 inside 集群中的工作负载。
如果您错过权限,您将收到该错误消息。 这里描述了需要什么权限 https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html#policy_example3
您需要将 IAM role/user 添加到集群的 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>
也看到了这个错误,它是由 EKS 的最新添加引入的,请参阅 https://aws.amazon.com/blogs/containers/introducing-the-new-amazon-eks-console/
从那时起,控制台代表您登录的用户或角色向 EKS 发出请求。
因此请确保 kube-system:aws-auth
configmap 添加了该用户或角色。
这个 user/role 可能与您在本地使用 AWS CLI 时使用的不一样,因此 kubectl 可能会在您仍然看到该错误的情况下工作!
这也可能是因为您使用与当前登录到 AWS 管理控制台的用户不同的 IAM 用户创建了 AWS EKS 集群,因此当前登录到 AWS 管理控制台的 IAM 用户无权查看AWS EKS 集群上的命名空间。
尝试使用创建 AWS EKS 集群的用户的 IAM 用户凭证登录 AWS 管理控制台,问题应该已解决。