[英]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服务连接:
填写方框,然后按照从服务帐户获取秘密的步骤进行操作,如果您没有更改yaml文件,请记住这是deploy-robot 。
然后只需使用您的Kubernetes连接:
另一个选择是使用基于“ kubeconf”的身份验证,其中可以通过以下AWS CLI命令获取“ kubeconf”文件:
aws eks --region region update-kubeconfig --name cluster_name --kubconfig ~/.kube/AzureDevOpsConfig
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.