Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何从Azure Devops管道连接AWS EKS群集-在KubeConfig内容中找不到群集的用户凭据_Amazon Web Services_Azure Devops_Amazon Eks_Azure Devops Server 2019 - Fatal编程技术网

Amazon web services 如何从Azure Devops管道连接AWS 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凭

我必须在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 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"
有用链接:


我通过使用ServiceAccount获得了解决方案,这篇文章如下:

对于仍然存在此问题的任何人,我必须为我工作的初创公司设置此功能,这非常简单

创建集群后,创建服务帐户

$ 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
...
...
...