用户无法使用kubectl登录到EKS集群 [英] User cannot log into EKS Cluster using kubectl

查看:23
本文介绍了用户无法使用kubectl登录到EKS集群的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在AWS Elastic Kubernetes Service(EKS)中托管应用程序。我已经使用IAM用户(User1)IAM控制台配置了EKS群集。已配置节点组并将节点添加到EKS群集,一切正常。

为了连接到集群,我启动了一个EC2实例(Centos7)并配置了以下内容:

1.安装了docker、kubeadm、kubelet和kubectl。
2.已安装并配置AWS Cli V2。

我已使用User1的AWS_ACCESS_KEY_IDAWS_SECRET_KEY_ID从EC2实例中配置AWS Cli,以便使用kubectl连接到群集。

我运行了以下命令,以便以用户1身份连接到群集:

1.AWS STS Get-Call-Identity
2.AWS EKS UPDATE-kubeconfig--name trojanwall--Region AP-South-1

我能够以用户1的身份执行EKS集群中的所有操作。

但是,我现在已经创建了一个名为‘user2’的新用户,并且我已经将当前的AWS_ACCESS_KEY_IDAWS_SECRET_KEY_ID替换为user2的用户。执行了相同的步骤,当我尝试运行‘kubectl get Pods’时,我收到以下错误:

错误:您必须登录到服务器(未经授权)

作为用户1:

运行kubectl Describe configmap-n kube-system aws-auth后的结果
Name:         aws-auth
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
====
mapRoles:
----
- groups:
  - system:bootstrappers
  - system:nodes
  rolearn: arn:aws:iam::XXXXXXXXXXXX:role/AWS-EC2-Role
  username: system:node:{{EC2PrivateDNSName}}


BinaryData
====

Events:  <none>

有人知道如何解决此问题吗?

推荐答案

创建EKS集群时,只有创建集群的用户才能访问该集群。为了允许其他人访问集群,您需要将该用户添加到aws-auth。为此,请在data部分中添加

mapUsers: |
  - userarn: arn:was:iam::<your-account-id>:user/<your-username>
    username: <your-username>
    groups:
      - systems:masters

您可以根据要授予该用户的权限使用不同的组。

如果您的计算机上还没有配置映射:

  1. 下载配置映射curl -o aws-auth-cm.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/aws-auth-cm.yaml
  2. 将默认值替换为您的值(角色ARN、用户名、帐户ID...)
  3. 如上所述添加mapUser部分
  4. 从终端执行kubectl apply -f aws-auth-cm.yaml

您也可以按照documentation中的步骤操作(更详细)

这篇关于用户无法使用kubectl登录到EKS集群的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆