自动部署

介绍了在GitLab 8.15中。自动部署是一个实验性的特性不建议用于生产环境此时。

从GitLab 9.1开始,只有在Pipeline运行时才能访问容器注册表。重新启动pod、扩展服务或其他需要持续访问的操作将会失败.后续版本计划提供持续的安全访问。

从GitLab 10.0开始,自动部署模板是弃用功能已经包含在汽车DevOps

自动部署是为部署应用程序配置GitLab CI的一种简单方法。GitLab社区维护一个列表.gitlab-ci.yml各种基础设施提供者的模板和为它们提供支持的部署脚本。这些脚本负责打包应用程序、设置基础设施和启动必要的服务(例如数据库)。

它是如何工作的

Autodeploy模板基于kubernetes-deployKubernetes项目,该项目通过提供智能的组件来简化Kubernetes的部署过程构建部署,摧毁命令,这些命令可以在.gitlab-ci.yml为是。它使用Herokuish,它使用Heroku buildpacks来做一些工作,再加上一些GitLab自己的工具来打包它。为方便起见,a码头工人形象也提供了。

你可以使用Kubernetes项目服务将凭据存储到基础设施提供程序中,并在部署期间可用。

快速启动

我们做了一个简单的指导使用自动部署与GitLab.com。

有关GitLab自动部署的演示,请阅读博客文章自动从GitLab部署到OpenShift容器集群

支持模板

中提供了受支持的自动部署模板列表gitlab-ci-yml项目

配置

注意:为了理解为什么需要以下步骤,请阅读它是如何工作的部分。

要配置自动部署,您需要:

  1. 启用部署项目服务来存储您的凭据。例如,如果要部署到OpenShift,则必须启用Kubernetes服务
  2. 配置GitLab Runner以使用Docker或Kubernetes执行器启用特权模式
  3. 导航到“项目”选项卡并单击“设置自动部署”按钮。自动部署按钮
  4. 选择模板。带有自动部署模板的下拉菜单
  5. 提交更改并创建合并请求。
  6. 测试您的部署配置审查程序它是自动为你创建的。

私人项目支持

实验支持介绍了在GitLab 9.1中。

当一个项目被标记为私有时,GitLab的容器注册表下载容器时需要身份验证。自动部署将自动向Kubernetes提供所需的身份验证信息,允许对注册表进行临时访问。在管道运行时,身份验证凭据将是有效的,从而允许成功的初始部署。

管道完成后,Kubernetes将不再能够访问容器注册表。重新启动pod、扩展服务或其他需要持续访问注册表的操作将失败。后续版本计划提供持续的安全访问。

PostgreSQL数据库支持

实验支持介绍了在GitLab 9.1中。

为了支持需要数据库的应用程序,PostgreSQL是默认配置的。访问数据库的凭据是预先配置的,但是可以通过设置关联的变量.这些凭据可用于定义DATABASE_URL格式的:postgres: / /用户:password@postgres-host: postgres-port / postgres-database.重要的是要注意数据库本身是临时的,并且不会保存内容。

PostgreSQL的发放可以通过设置这个变量来关闭DISABLE_POSTGRES“是的”

PostgreSQL支持以下变量:

  1. DISABLE_POSTGRES:“是的”:关闭PostgreSQL自动部署功能
  2. POSTGRES_USER:“我的用户”: PostgreSQL使用自定义用户名
  3. POSTGRES_PASSWORD:“密码”: PostgreSQL使用自定义密码
  4. POSTGRES_DB:“我的数据库”:使用自定义数据库名

汽车监控

介绍了GitLab 9.5

自动部署的应用程序Kubernetes模板还可以自动监控:

  • 响应度量:延迟、吞吐量、错误率
  • 系统指标:CPU利用率、内存利用率

度量标准是从nginx-ingressKubernetes

要查看指标,请打开已部署环境的监视仪表板

自动的度量标准

配置自动监控

如果GitLab已经使用omnibus-gitlab舵图,不需要配置。

如果您使用不同的方法安装了GitLab:

  1. 部署普罗米修斯到Kubernetes集群中
  2. 如果您想要响应指标,请确保您运行至少0.9.0版本的NGINX入口和启用普罗米修斯度量
  3. 最后,注释被Prometheus抓取的NGINX入口部署普罗米修斯。io /刮:“真正的”普罗米修斯。io /端口:“10254”
Baidu
map