繁体   English   中英

如何从Azure DevOps部署到AWS Kubernetes

[英]How to deploy to AWS Kubernetes from Azure DevOps

我正在使用Azure DevOps处理PBI,存储库,PRS和构建,但是我所有的基础架构(包括Kubernetes)都由AWS管理。

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

我找到了这个解决方案 ,它是一个很好的解决方案,但是如果您知道如何解决它,或者是否有更多方法,将非常棒。

经过研究并尝试失败之后,我发现了另一种方法,而又不会弄乱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

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

注意:请调整角色资源上的规则以满足您的需求,例如服务资源权限。

然后转到您的发行版并创建Kubernetes服务连接:

Kubernetes服务连接

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

Kubernetes服务连接

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

使用Kubernetes Connection发行

另一个选择是使用基于“ kubeconf”的身份验证,其中可以通过以下AWS CLI命令获取“ kubeconf”文件:

aws eks --region region update-kubeconfig --name cluster_name --kubconfig ~/.kube/AzureDevOpsConfig

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM