如何从 Azure DevOps 部署到 AWS Kubernetes

Dav*_*eña 4 amazon-web-services continuous-deployment kubernetes azure-devops

我正在使用 Azure DevOps 来处理 PBI、repos、PRS 和构建,但我的所有基础设施(包括 Kubernetes)都由 AWS 管理。

没有文档,也没有关于如何使用 Azure DevOps 任务部署到 AWS EKS 的“正确且简单的方法”。

我找到了这个解决方案,它是一个很好的解决方案,但是知道你们如何解决它,或者是否有更多方法会很棒。

Dav*_*eña 15

经过研究和尝试并失败后,我找到了另一种方法来做到这一点,而无需处理 shell 脚本。

您只需要将以下内容应用到 Kubernetes,它将创建一个 ServiceAccount 并将其绑定到一个自定义角色,该角色将拥有创建/删除部署和 pod 的权限(调整它以获得服务权限)。

deploy-robot-conf.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: deploy-robot
automountServiceAccountToken: false
---
apiVersion: v1
kind: Secret
metadata:
  name: deploy-robot-secret
  annotations:
    kubernetes.io/service-account.name: deploy-robot
type: kubernetes.io/service-account-token
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: deploy-robot-role
  namespace: default
rules: # ## Customize these to meet your requirements ##
- apiGroups: ["apps"]
  resources: ["deployments"]
  verbs: ["create", "delete"]
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["create", "delete"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: global-rolebinding
  namespace: default
subjects:
- kind: ServiceAccount
  name: deploy-robot
  namespace: default
roleRef:
  kind: Role
  name: deploy-robot-role
  apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)

这将具有 Azure DevOps 能够部署到群集所需的最低权限。

笔记:请调整角色资源的规则以满足您的需要,例如服务资源权限。

然后转到您的版本并创建一个 Kubernetes 服务连接:

Kubernetes 服务连接

填写方框,然后按照从服务帐户获取机密所需的步骤进行操作,如果您没有更改 yaml 文件,请记住这是deploy-robot

Kubernetes 服务连接

然后只需使用您的 Kubernetes 连接:

使用 Kubernetes 连接发布