通过AWS CodeBuild进行应用时,无法在配置映射中获取aws-iam-authenticator

时间:2019-05-14 05:53:01

标签: amazon-web-services kubernetes kubectl aws-eks

我正在制作CICD管道,使用AWS CodeBuild来构建应用程序(服务)并将其部署到AWS EKS集群。我已经正确安装了kubectl和aws-iam-authenticator, 在命令中使用 aws代替aws-iam-authenticator

kind: Config 
preferences: {} 
users: 
- name: arn:aws:eks:ap-south-1:*******:cluster/DevCluster 
user: 
exec: 
apiVersion: client.authentication.k8s.io/v1alpha1 
args: 
- eks 
- get-token 
- --cluster-name 
- DevCluster 

命令:aws

env:null

[容器] 2019/05/14 04:32:09运行命令kubectl get svc 错误:服务器没有资源类型“ svc”

我不想手动编辑configmap,因为它是通过管道传递的。

2 个答案:

答案 0 :(得分:1)

正如@Priya Rani在评论中所说,他找到了解决方案。

configmap文件没有问题。没关系。

1)我需要使Cloudformation(集群+节点实例)受信任角色,以通过编辑受信任角色与Codebuild进行通信。

2)需要添加usedata部分以与群集通信节点实例。

答案 1 :(得分:0)

为什么不通过在CICD管道内设置KUBECONFIG env变量来加载适当/专用的kube配置文件,如下所示:

export KUBECONFIG=$KUBECONFIG:~/.kube/config-devel

其中将包含与 aws-iam-authenticator 一起使用的正确命令:

#
#config-devel
#
...
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: aws-iam-authenticator
      args:
        - "token"
        - "-i"
        - "<cluster-name>"