我必须在Microsoft Azure Devops中设置CI,才能部署和管理AWS EKS群集资源。第一步,发现很少的kubernetes任务与kubernetes集群建立连接(在我的情况下是AWS EKS),但是在Azure devops中的任务“ kubectlapply”任务中,我只能将kube配置文件或Azure订阅传递给到达集群。
就我而言,我具有kube配置文件,但我还需要传递经授权可访问AWS EKS集群的AWS用户凭证。但是,在添加新的“ k8s端点”以提供可用于访问EKS集群的AWS凭证时,任务中没有此类选项。因此,在验证与EKS群集的连接时看到以下错误。
在运行时,我可以通过管道中的envrionment变量传递AWS凭证,但不能在任务中添加kubeconfig文件并保存它。
Azure和AWS在云中扮演着重要角色,应该有多种方法可以连接任何CI平台上的AWS资源。是否有人遇到过此类问题?在Azure Devops CI中进行部署时,首先连接到AWS和EKS群集的最佳方法是什么?
在KubeConfig内容中找不到群集的用户凭据。确保凭据存在,然后重试。
答案 0 :(得分:0)
Amazon EKS使用IAM通过适用于Kubernetes的AWS IAM Authenticator为您的Kubernetes集群提供身份验证。您可以参考以下格式更新配置文件:
apiVersion: v1
clusters:
- cluster:
server: ${server}
certificate-authority-data: ${cert}
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
env:
- name: "AWS_PROFILE"
value: "dev"
args:
- "token"
- "-i"
- "mycluster"
有用的链接:
答案 1 :(得分:0)
此帖子后,我使用 ServiceAccount 获得了解决方案:How to deploy to AWS Kubernetes from Azure DevOps