首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Azure Devops管道连接AWS集群-在KubeConfig内容中没有找到群集的用户凭据

如何从Azure Devops管道连接AWS集群-在KubeConfig内容中没有找到群集的用户凭据
EN

Stack Overflow用户
提问于 2020-04-06 23:33:42
回答 3查看 4.8K关注 0票数 4

我必须在Microsoft Azure Devops中设置CI来部署和管理AWS EKS集群资源。作为第一步,发现很少有kubernetes任务可以连接到kubernetes集群(在我的例子中是AWS EKS),但是在Azure devops中的任务"kubectlapply“中,我只能传递kube配置文件或Azure订阅到集群。

在我的例子中,我有kube文件,但我还需要传递AWS用户凭据,该用户凭据被授权访问access集群。但是,当添加新的"k8s端点“以提供可用于访问EKS集群的AWS凭据时,任务中没有这样的选项。正因为如此,在验证到EKS集群的连接时,我看到了下面的错误。

在运行时,我可以通过管道中的环境变量传递AWS凭据,但不能在任务中添加kubeconfig文件并保存它。

Azure和AWS是云中的重要参与者,应该有方法从任何CI平台连接AWS资源。是否有人面临此类问题,以及在Azure Devops CI中连接到AWS first和EKS集群以进行部署的最佳方法。

没有在KubeConfig内容中找到用于群集的用户凭据。确保凭据存在,然后重试.

EN

回答 3

Stack Overflow用户

发布于 2020-04-07 09:18:34

Amazon使用IAM通过Kubernetes的AWS IAM身份验证器向Kubernetes集群提供身份验证。您可以参照以下格式更新配置文件:

代码语言:javascript
复制
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"

有用的链接:

票数 0
EN

Stack Overflow用户

发布于 2020-05-20 07:08:36

我在下面的文章中使用ServiceAccount获得了解决方案:How to deploy to AWS Kubernetes from Azure DevOps

票数 0
EN

Stack Overflow用户

发布于 2021-05-22 03:05:03

对于那些仍然有这个问题的人来说,我必须为我为之工作的初创公司做好准备,这很简单。

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

代码语言:javascript
复制
$ kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: build-robot
EOF

然后应用集群rolebinding。

代码语言:javascript
复制
$ 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

请注意上面的内容,因为它提供了完整的访问、签出(https://kubernetes.io/docs/reference/access-authn-authz/rbac/)以获取更多用于限定访问范围的信息。

从那里开始到ADO,然后按照下面的步骤使用部署机器人作为SA名称。

代码语言:javascript
复制
$ kubectl get serviceAccounts build-robot -n default -o='jsonpath={.secrets[*].name}'
xyz........
代码语言:javascript
复制
$ kubectl get secret xyz........ -n default -o json
...
...
...

在将kubernetes资源添加到环境中时,将输出粘贴到最后一个框中,并选择Accept UnTrusted Certificates。然后单击“应用”和“验证”,您应该会做得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61070545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档