209.md 7.8 KB
Newer Older
Lab机器人's avatar
readme  
Lab机器人 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
# 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. 如果单独包含它,它可能会发生意外更改,从而导致您的管道失败. 同样,此模板中的作业名称也可能会更改. 不要在自己的管道中覆盖这些作业的名称,因为当名称更改时,覆盖将停止工作.