kubectl version
在CodeBuild上显示错误...
[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 Cluster。 似乎缺少某些身份验证设置...?
我做了什么:
codebuild-hoge-service-role
)。eks:DescribeCluster
策略添加到角色中作为内联策略,因为aws eks update-kubeconfig
需要它。configmap/aws-auth
在我的本地设备上编辑kubectl edit -n kube-system 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
。很好!buildspec.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
答案 0 :(得分:0)
我有同样的问题。我只需要创建一个具有与原始角色相同的受信任关系和策略的角色。但是它起作用了。
我唯一不同的是没有添加路径 / service-role / ,因此ARN看起来像:arn:aws:iam::123456789012:role/another-codebuild-role
。