多 Kubernetes 集群的 Auto DevOps

使用 Auto DevOps 时,您可以将不同的环境部署到不同的 Kubernetes 集群。

Auto DevOps 使用的部署作业模板定义了 3 个环境名称:

  • review/(每个以 review/ 开头的环境)
  • staging
  • production

这些环境使用 Auto Deploy 与作业绑定,因此除了环境范围外,它们必须具有不同的部署域名。 您必须根据环境为上述每个变量定义一个单独的 KUBE_INGRESS_BASE_DOMAIN 变量。

部署到不同集群

要将您的环境部署到不同的 Kubernetes 集群:

  1. 创建 Kubernetes 集群.
  2. 将集群与项目关联起来:
    1. 在每个集群上安装极狐GitLab agent
    2. 配置每个 agent 来访问您的项目
  3. 在每个集群上安装 NGINX Ingress Controller。为下一步保存 IP 地址和 Kubernetes 命名空间。
  4. 配置 Auto DevOps CI/CD 流水线变量
    • 为每个环境设置 KUBE_CONTEXT 变量。值必须指向相对应集群的 agent。
    • 设置 KUBE_INGRESS_BASE_DOMAIN。您必须为每一个环境配置基础域名来指向对应集群的 Ingress。
    • 添加变量 KUBE_NAMESPACE,值是您想要部署的目标 Kubernetes 集群的命名空间。您可以将变量的作用域设定为多个环境。

对于弃用,基于证书的集群

  1. 前往项目并从做侧边栏选择 运维 > Kubernetes 集群
  2. 设置每个集群的环境范围
  3. 为每个集群添加域名
note在检查活跃的 Kubernetes 集群时,集群环境作用域未得到遵守。对于多集群设置,您必须创建一个集群环境范围设置为 * 的后备集群。您可以设置您已经添加的任何集群作为后备集群。

示例配置

下表是如何配置三个不同集群的示例:

集群名称 集群环境范围 KUBE_INGRESS_BASE_DOMAIN 变量值 变量环境范围 备注
review review/* review.example.com review/* 运行所有 Review Apps 的集群。* 是通配符,由以 review/ 开头的每个环境名称使用。
staging staging staging.example.com staging 可选。运行 staging 环境部署的 staging 集群。您必须首先启用它
production production example.com production 运行生产环境部署的生产集群。您可以使用增量部署

测试您的配置

完成配置后,通过创建合并请求来测试您的设置。验证您的应用程序是否在具有 review/* 环境范围的 Kubernetes 集群中,部署为 Review 应用程序。同样,检查其它环境。