Requirements for Auto DevOps
原文:https://docs.gitlab.com/ee/topics/autodevops/requirements.html
Requirements for Auto DevOps
您可以为Kubernetes或Amazon Elastic Container Service(ECS)设置 Auto DevOps. 有关 Auto DevOps 的更多信息,请参见Auto DevOps 主页或快速入门指南 .
Auto DevOps requirements for Kubernetes
要充分利用 Auto DevOps 和 Kubernetes,您需要:
Kubernetes (用于自动审阅应用程序 , 自动部署和自动监视 )
要启用部署,您需要:
- 您的项目的Kubernetes 1.12+集群 . 最简单的方法是使用 GitLab UI创建新集群 . 对于 Kubernetes 1.16+群集,您必须为Auto Deploy for Kubernetes 1.16+执行附加配置.
NGINX 入口. 在上一步中配置了 GitLab 的 Kubernetes 集成之后,可以通过安装用于 Ingress的GitLab 托管的应用程序,将其部署到 Kubernetes 集群中.
另外,您可以使用
nginx-ingress
Helm 图表手动安装 Ingress.注意:如果您使用自己的 Ingress 而不是 GitLab 托管应用程序提供的 Ingress,请确保您至少运行的是 NGINX Ingress 0.9.0 版,并启用 Prometheus指标以显示响应指标. 您还必须使用
prometheus.io/scrape: "true"
和prometheus.io/port: "10254"
注释由 Prometheus 抓取的 NGINX Ingress 部署.
-
您需要一个配置了通配符 DNS 的域,所有您的 Auto DevOps 应用程序都将使用该域. 如果您使用的是GitLab 托管的 Ingress 应用程序 ,则会自动为您配置 URL 端点.
您还必须指定 Auto DevOps 基本域 .
GitLab Runner (所有阶段)
必须将 Runner 配置为运行 Docker,通常使用Docker或Kubernetes执行程序,并启用特权模式 . Runner 不需要安装在 Kubernetes 集群中,但是 Kubernetes 执行器易于使用,并且可以自动缩放. 您还可以使用Docker Machine 将基于 Docker 的 Runner 配置为自动缩放.
如果您在第一步中配置了 GitLab 的 Kubernetes 集成,则可以通过为 GitLab Runner安装由GitLab 管理的应用程序将其部署到集群中.
运动员应注册为共享亚军整个 GitLab 实例或特定的运动员被分配到具体项目(默认值,如果你已经安装了 GitLab 亚军管理应用程序).
Prometheus (for Auto Monitoring)
要启用自动监控,您需要在集群内部或外部安装 Prometheus,并配置为刮取 Kubernetes 集群. 如果已经配置了 GitLab 的 Kubernetes 集成,则可以通过安装Prometheus的GitLab 托管的应用程序将其部署到集群中.
必须为项目启用Prometheus 服务集成,或者将其作为整个 GitLab 安装的默认服务模板启用.
要获取响应指标(除了系统指标之外),您必须配置 Prometheus 来监视 NGINX .
cert-manager (可选,用于 TLS / HTTPS)
要为您的应用程序启用 HTTPS 端点,必须安装 cert-manager,这是一个本地 Kubernetes 证书管理控制器,可帮助颁发证书. 在您的群集上安装 cert-manager 会发出Let’s Encrypt证书,并确保证书有效和最新. 如果已经配置了 GitLab 的 Kubernetes 集成,则可以通过安装GitLab 托管的 cert-manager 应用程序将其部署到集群中.
如果您没有安装 Kubernetes 或 Prometheus,则将跳过Auto Review Apps , Auto Deploy和Auto Monitoring .
满足所有要求后,您可以启用 Auto DevOps .
Auto DevOps requirements for Amazon ECS
Introduced in GitLab 13.0.
您可以选择将AWS ECS定位为部署平台,而不是使用 Kubernetes.
要开始使用针对 AWS ECS 的 Auto DevOps,您必须添加特定的环境变量. 这样做,请按照下列步骤操作:
在您的项目中,转到“设置”>” CI / CD”,然后展开” 变量”部分.
通过添加具有以下值之一的
AUTO_DEVOPS_PLATFORM_TARGET
变量,指定在 Auto DevOps 部署期间要定位的 AWS 平台:FARGATE
如果您的目标服务必须启动类型 FARGATE 的.ECS
如果部署到 ECS,当你不执行任何启动类型检查.
触发管道时,如果启用了 Auto DevOps 且已正确输入 AWS 凭证作为环境变量 ,则您的应用程序将部署到 AWS ECS.
注意:部署到 AWS ECS 时, GitLab 托管应用程序不可用. 您必须在 AWS ECS 上手动配置应用程序(例如 Ingress 或 Help).注意:如果您同时具有有效的AUTO_DEVOPS_PLATFORM_TARGET
变量和与项目绑定的 Kubernetes 集群,则仅运行 Kubernetes 的部署.警告:将AUTO_DEVOPS_PLATFORM_TARGET
变量设置为ECS
将触发Jobs/Deploy/ECS.gitlab-ci.yml
模板中定义的Jobs/Deploy/ECS.gitlab-ci.yml
. 但是,不建议单独包含它. 该模板仅设计用于 Auto DevOps. 如果单独包含它,它可能会发生意外更改,从而导致您的管道失败. 同样,此模板中的作业名称也可能会更改. 不要在自己的管道中覆盖这些作业的名称,因为当名称更改时,覆盖将停止工作.