我正在制作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,因为它是通过管道传递的。
答案 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>"