访问EKS集群时,出现了“kubectl error You must be logged in to the server (Unauthorized)”错误,怎么办?

0

【以下的问题经过翻译处理】 我正在进行AWS EKS和CodePipeline主题的实践实验。请参见下面的链接:

https://000062.awsstudygroup.com/

我在第4.6步创建使用CloudFormation模板的Pipeline时卡住了。由于我在照片中附加的错误,代码构建失败。照片请看https://repost.aws/media/postImages/original/IMUVEk9yMGQce0HKBkMeCbAw

请帮我检查一下!

1 回答
0

【以下的回答经过翻译处理】 你遇到的“error: You must be logged in to the server (Unauthorized) ”是由于CodeBuild中的kubectl没有正确配置Amazon EKS,或者您使用的IAM用户或角色凭据不映射到具有足够权限的Kubernetes RBAC用户Amazon EKS集群中。

要检查的事项:

  1. CodeBuild服务的服务角色:eks-CodeBuildServiceRole应具有以下权限。它可以完全访问EKS。
    {
      "Sid": "EKSAccessPolicy",
      "Effect": "Allow",
      "Action": [
        "eks:*"
      ],
      "Resource": "*"
    }

  1. CodeBuild服务的服务角色到Kubernetes RBAC用户的映射。从您连接到EKS集群的Cloud9终端,使用以下命令验证configMap aws-auth是否具有IAM角色的正确条目:eks-CodeBuildServiceRole :
kubectl edit configmaps aws-auth -n kube-system

eks-CodeBuildServiceRole应映射到masters。请确保您的AWS_ACCOUNT_ID在下面的片段中被替换:

- groups:
  - system:masters
  rolearn: arn:aws:iam::{$AWS_ACCOUNT_ID}}:role/eks-CodeBuildServiceRole
  username: codebuild-eks

我已经成功重现了指南中的步骤。请查看CodeBuild结果。https://repost.aws/media/postImages/original/IMUVEk9yMGQce0HKBkMeCbAw

profile picture
专家
已回答 4 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则