[英]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 集群。 似乎缺少一些身份验证设置...?
我做了什么:
codebuild-hoge-service-role
)。eks:DescribeCluster
Policy 作为内联策略添加到角色中,因为aws eks update-kubeconfig
需要它。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
就这样。 不够? 有什么我错过的吗?
我还尝试了另一种调试方法,它成功地工作了。
configmap/aws-auth
并为角色添加配置。 (同失败过程)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.