kubectl 错误“您必须登录到服务器(服务器已要求客户端提供凭据”

问题描述 投票:0回答:1

运行任何

kubectl
命令时出现错误。

$ kubectl version
Client Version: v1.29.1
error: You must be logged in to the server (the server has asked for the client to provide credentials)

我已运行以下命令来配置 EKS 集群。
我正在使用 aws cli 版本

aws-cli/2.17.51

$ aws eks --region <region> update-kubeconfig --name <my-cluster-name>

命令确实运行成功,我可以看到 kubectl 配置文件中的配置已更新。

我有一个创建了 EKS 集群的 AWS 根用户,并且我正在使用 IAM 用户访问该集群。 IAM 用户拥有访问此集群所需的所有权限和角色。

此外,集群为此 IAM 用户配置了

IAM access entries
作为
AmazonEKSAdminPolicy

我已使用

aws configure
在 aws 命令行中配置 IAM 用户的密钥。
但我仍然收到此错误。

我确实遵循了多种解决方案来修复此错误,但没有用。
Kubectl 询问:错误:您必须登录到服务器(服务器已要求客户端提供凭据)

amazon-web-services kubernetes amazon-eks kubectl
1个回答
0
投票

对于 EKS,您还需要将用户添加到 kube-system 命名空间中的

aws-auth
ConfigMap。

kubectl edit configmap aws-auth -n kube-system

然后在

mapUsers
下添加:

  mapUsers: |-
    - groups:
      - system:masters
      userarn: arn:aws:iam::<acc>:user/<username>
      username: <username>

所以像这样:

apiVersion: v1
data:
  mapRoles: |
    - groups:
      - system:bootstrappers
      - system:nodes
      rolearn: arn:aws:iam::<acc>:role/eks-nodegroup-role
      username: system:node:{{EC2PrivateDNSName}}
  mapUsers: |-
    - groups:
      - system:masters
      userarn: arn:aws:iam::<acc>:user/<username>
      username: <username>
© www.soinside.com 2019 - 2024. All rights reserved.