Amazon web services kubectl错误您必须登录到服务器(未经授权)-EKS群集
我是EKS和Kubernetes的新手- 下面是发生的事情Amazon web services kubectl错误您必须登录到服务器(未经授权)-EKS群集,amazon-web-services,kubernetes,kubectl,amazon-eks,Amazon Web Services,Kubernetes,Kubectl,Amazon Eks,我是EKS和Kubernetes的新手- 下面是发生的事情 创建了具有特定IAM角色的EKS群集 当尝试使用kubectl命令连接到集群时,它正在抛出 错误您必须登录到服务器(未经授权) 我遵循了这里详述的步骤 担任创建EKS群集的角色 将它们导出到aws凭据中的新配置文件dev RanAWS\u PROFILE=dev kubectl get nodes。它能够列出我的所有节点 注意:我已经运行了aws eks--region update kubeconfig--name 现在,我尝试添加
错误您必须登录到服务器(未经授权)
我遵循了这里详述的步骤
dev
AWS\u PROFILE=dev kubectl get nodes
。它能够列出我的所有节点AWS\u PROFILE=dev kubectl apply-f AWS auth.yaml
aws认证yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: arn:aws:sts::******:assumed-role/aws_dev/abc@def.com
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
请注意,角色arn是一个SAML用户,被假定为尝试连接到集群的aws\u dev
角色
应用此选项后,响应为configmap/aws auth configured
我现在尝试在没有AWS_PROFILE=dev的情况下执行kubectl get nodes
,但再次失败,出现错误,您必须登录到服务器(未经授权)
我还执行了以前工作但现在失败的AWS\u PROFILE=dev kubectl get nodes
我猜aws认证信息弄乱了,有没有办法恢复上面所做的kubectl apply
现在任何kubectl命令都会失败。可能会发生什么?如何纠正此问题?如果您的AWS身份和访问管理(IAM)实体未经Amazon EKS群集的基于角色的访问控制(RBAC)配置授权,则会出现授权错误。当Amazon EKS群集由与aws IAM authenticator使用的不同的IAM用户或角色创建时,会发生这种情况 检查分辨率
重新创建集群,当您进入链接中的步骤6时,向aws-auth.yaml添加第二个角色(或用户),如下所示:
kubectl获取配置图获取cm-n kube系统aws auth-o yaml
通常,当您创建集群时,创建该集群的用户(或角色)具有管理员权限,当您切换用户时,您需要将其添加到配置中(作为创建集群的用户完成) 正如我的问题中所指出的,我确实遵循了链接中的步骤,但仍然面临问题。我列出了我遵循的相同步骤。这里的问题是aws auth config弄乱了集群,我无法运行kubectl。如何还原此内容?aws eks--区域更新kubeconfig--名称再次尝试此操作Ini不想重新创建群集是否有方法还原对配置映射aws auth所做的更改?如果您没有创建群集的用户的访问权限,那么我猜您在更改配置映射时锁定了自己
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: arn:aws:sts::******:assumed-role/aws_dev/abc@def.com
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
### Add only this (assuming you're using a role)
- rolearn: <ARN of your IAM role>
username: <any name>
groups:
- system:masters