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