Amazon web services 如何从Azure Devops管道连接AWS EKS群集-在KubeConfig内容中找不到群集的用户凭据
我必须在Microsoft Azure Devops中设置CI以部署和管理AWS EKS群集资源。作为第一步,我发现很少有kubernetes任务可以连接到kubernetes群集(在我的例子中,它是AWS EKS),但在Azure devops中的任务“kubectlapply”任务中,我只能传递kube配置文件或Azure订阅以到达群集 在我的例子中,我有kube配置文件,但我还需要传递授权访问AWS EKS集群的AWS用户凭据。但在添加新的“k8s端点”以提供可用于访问EKS群集的AWS凭据时,任务中没有此类选项。因此,在验证与EKS群集的连接时,我看到以下错误 在运行时,我可以通过管道中的环境变量传递AWS凭据,但不能在任务中添加kubeconfig文件并保存它 Azure和AWS是云中的大玩家,应该有连接的方法来连接来自任何CI平台的AWS资源。是否有人遇到过此类问题?在Azure Devops CI中部署时,连接到AWS first和EKS群集的最佳方法是什么 在KubeConfig内容中找不到群集的用户凭据。确保凭据存在,然后重试。Amazon web services 如何从Azure Devops管道连接AWS EKS群集-在KubeConfig内容中找不到群集的用户凭据,amazon-web-services,azure-devops,amazon-eks,azure-devops-server-2019,Amazon Web Services,Azure Devops,Amazon Eks,Azure Devops Server 2019,我必须在Microsoft Azure Devops中设置CI以部署和管理AWS EKS群集资源。作为第一步,我发现很少有kubernetes任务可以连接到kubernetes群集(在我的例子中,它是AWS EKS),但在Azure devops中的任务“kubectlapply”任务中,我只能传递kube配置文件或Azure订阅以到达群集 在我的例子中,我有kube配置文件,但我还需要传递授权访问AWS EKS集群的AWS用户凭据。但在添加新的“k8s端点”以提供可用于访问EKS群集的AWS凭
Amazon EKS使用IAM通过AWS针对Kubernetes的IAM验证器向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"
有用链接:
$ kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: build-robot
EOF
将kubernetes资源添加到环境中时,将输出粘贴到最后一个框中,然后选择
接受不受信任的证书
。然后单击apply and validate(应用并验证),您就可以开始了。kube配置具有您所说的aws iam验证器,可以使用aws用户访问eks,但在Azure任务中,没有可用于输入aws密钥和密码以访问k8s群集的选项。这是我的问题。你能试着捕捉小提琴手的痕迹吗?不,我甚至达不到那个点。配置任务时,在保存管道并运行之前,我看到此错误。在创建服务连接时捕获fiddler跟踪并进行验证。Dong-我没有选项在创建服务连接时启用任何调试。可以从命令行启用任何跟踪选项。我的问题是使用kube配置文件测试与k8s集群的连接。在linux代理上,尝试使用详细信息启用kubectl调试/跟踪,但无法使其工作。您知道如何在kubectl中启用跟踪吗,“kubectl config view--kubeconfig=$HOME/kubeconfig/deployer/config--v=4”
$ kubectl apply -f - <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/name: build-robot
name: build-robot
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admin
subjects:
- kind: ServiceAccount
name: build-robot
namespace: default
EOF
$ kubectl get serviceAccounts build-robot -n default -o='jsonpath={.secrets[*].name}'
xyz........
$ kubectl get secret xyz........ -n default -o json
...
...
...