Help us learn about your current experience with the documentation. Take the survey.

Auto DevOps 的多 Kubernetes 集群

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

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

Auto DevOps 使用的 部署任务模板 定义了三个环境名称:

  • review/(所有以 review/ 开头的环境)
  • staging
  • production

这些环境通过 Auto Deploy 与任务关联,因此它们必须有不同的部署域名。您必须为这三个环境分别定义独立的 KUBE_CONTEXTKUBE_INGRESS_BASE_DOMAIN 变量。

部署到不同集群

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

  1. 创建 Kubernetes 集群
  2. 将集群关联到您的项目:
    1. 在每个集群上安装 GitLab Kubernetes 代理
    2. 配置每个代理以访问您的项目
  3. 在每个集群中安装 NGINX Ingress Controller。保存 IP 地址和 Kubernetes 命名空间以备下一步使用。
  4. 配置 Auto DevOps CI/CD 流水线变量
    • 为每个环境设置 KUBE_CONTEXT 变量 for each environment。该值必须指向相关集群的代理。
    • 设置 KUBE_INGRESS_BASE_DOMAIN。您必须 配置基础域名,使每个环境指向相关集群的 Ingress。
    • 添加一个 KUBE_NAMESPACE 变量,值为您希望部署目标所在的 Kubernetes 命名空间。您可以将变量范围设置为多个环境。

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

  1. 进入项目,从左侧边栏选择 运维 > Kubernetes 集群
  2. 设置每个集群的环境范围
  3. 对于每个集群,基于其 Ingress IP 地址添加域名

检查活跃 Kubernetes 集群时不会考虑集群环境范围。要让多集群设置与 Auto DevOps 协同工作,您必须创建一个备用集群,将 集群环境范围 设置为 *。您可以将已添加的任何集群设置为备用集群。

示例配置

集群名称 集群环境范围 KUBE_INGRESS_BASE_DOMAIN KUBE CONTEXT 变量环境范围 说明
review review/* review.example.com path/to/project:review-agent review/* 运行所有 review 应用 的 review 集群。
staging staging staging.example.com path/to/project:staging-agent staging 可选。运行 staging 环境部署的 staging 集群。您必须 先启用它
production production example.com path/to/project:production-agent production 运行生产环境部署的生产集群。您可以使用 渐进式发布

测试您的配置

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