繁体   English   中英

由于身份验证问题,无法在连接 Amazon EKS 集群的 AWS CodeBuild 上执行 kubectl

[英]Executing kubectl on AWS CodeBuild connecting Amazon EKS Cluster does not work because of authentication problem

kubectl version打印错误...

[Container] 2019/08/26 04:07:32 Running command kubectl version 
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"} 
error: You must be logged in to the server (the server has asked for the client to provide credentials)

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

我正在使用 Amazon EKS 集群。 似乎缺少一些身份验证设置...?

我做了什么:

  1. 设置 codebuild 项目(创建了一个新的服务角色codebuild-hoge-service-role )。
  2. eks:DescribeCluster Policy 作为内联策略添加到角色中,因为aws eks update-kubeconfig需要它。
  3. 通过kubectl edit -n kube-system configmap/aws-auth在我的本地设备上编辑configmap/aws-auth以绑定角色和 RBAC,向mapRoles添加新配置,例如:
   mapRoles: |
     - rolearn: .....
     - rolearn: arn:aws:iam::999999999999:role/service-role/codebuild-hoge-service-role
     ¦ username: codebuild
     ¦ groups:
     ¦   - system:masters

就这样。 不够? 有什么我错过的吗?

我还尝试了另一种调试方法,它成功地工作了。

  1. 创建 IAM 用户和 IAM 角色。 他可以切换到角色(assume role)。
  2. 编辑configmap/aws-auth并为角色添加配置。 (同失败过程)
  3. 在本地切换角色并执行kubectl version 有效!!

构建规范.yml

version: 0.2
phases:
  install:
    runtime-versions:
      docker: 18
    commands:
      - curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
      - chmod +x ./kubectl
      - mv -f ./kubectl /usr/local/bin/kubectl
  pre_build:
    commands:
      - aws eks update-kubeconfig --name mycluster
      - kubectl version
  build:
    commands:
      - kubectl get svc -A

我遇到过同样的问题。 我只需要创建另一个具有与原始角色相同的可信关系和策略的角色。 但它奏效了。

我唯一不同的是没有添加路径/service-role/ ,所以 ARN 看起来像: arn:aws:iam::123456789012:role/another-codebuild-role

我今天面临同样的问题。 此处提供的答案确实有效,但本质上您需要做的是从您在aws-auth config map 中使用的角色的 ARN 中删除/service-role字符串。实际上不需要创建单独的角色(在您的 IAM 控制台,您可以在其 ARN 中保留具有/service-role路径的角色,仅在aws-auth配置映射中将其删除)。

详情请参阅以下文章: AWS 知识中心文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM