首页 / 平台管理 / 集群管理 / 集群配置管理(Alpha) / 创建同步规则

创建同步规则

同步规则是指从 Git 仓库到平台指定集群的一种资源映射关系,您可以通过在 Git 仓库中存储应用的配置文件,通过创建平台的同步规则,实现应用的自动批量下发和状态同步。

前提条件

您须在 global 集群中部署 ArgoCD Operator,参考 部署 ArgoCD Operator

提示

创建同步规则

  1. 在左侧导航栏中,单击 集群管理 > 集群配置管理

  2. 单击 创建同步规则,参考以下说明,配置相关参数。

    参数 说明
    代码仓库集成名称 代码仓库集成时填写的集成名称。
    代码仓库项目名称 代码仓库中的项目名称。
    代码仓库 指定项目下的代码仓库名称。
    分支 存放配置文件的代码仓库分支。
    源文件类型 - Kustomize:平台使用 Kustomize 与 GitOps 工作流程集成,它允许您为应用程序的不同部署环境(例如开发、测试、生产)或不同的集群,基于基础配置自定义一组修改规则,这些规则仅在特定环境或上下文中生效,您可以使用它来修改现有的 Kubernetes 资源,以适应不同环境的要求,使用该类型,您可参考如下代码 文件示例 以符合 Kustomize 文件结构与语法。
    - 资源文件:使用 Kubernetes 资源文件同步至各个集群,例如 Deployment 类型的计算组件。
    源文件目录 配置文件的目录,选择目录后,该目录下的所有 YAML、YML 和 JSON 资源文件将同步至目标集群。
    提示:选择 Kustomize 时,仅同步根目录下的文件。
    目标集群 选择一个或多个目标集群。创建同步规则后,代码仓库中的基础配置文件将自动同步至目标集群,并创建相应资源。
    提示:选择 所有集群除 global 外的所有集群 时,后续添加集群后,将自动同步配置资源至新添加的集群中。
    差异化配置 仅支持 源文件类型 选择 Kustomize 时需配置差异化参数。
    • 集群:需要进行差异化配置的目标集群。
    • Overlay 目录:选择在代码仓库中存放差异化配置文件的目录,需要注意的是,Overlay 目录内 Kustomize 文件需引用源文件目录。
  3. 单击 创建。您可根据相关状态确定同步规则的资源同步情况。

  4. 创建完成同步规则后,平台将自动生成同步 ID,一个同步 ID 对应一个集群。单击同步 ID 即可查看最近任务资源同步的具体资源名称、同步状态和资源类型。

同步状态

同步状态为当前同步规则的资源同步情况。

同步状态 说明
待同步 Git 仓库中定义的资源状态与环境中资源状态不一致,但未开始同步。
同步失败 任意配置文件同步至目标集群时失败。
同步中 任意配置文件正在同步至目标集群,且没有文件同步失败。
已同步 所有配置文件已同步至目标集群。

健康状态

健康状态为 ArgoCD 组件的健康状态。

健康状态 说明
未知 Unknown,YAML 配置文件有相关问题,目录不存在或代码仓库出现问题。
进行中 Progressing,资源已经创建成功,Pod 处于非 Ready 状态。
健康 Healthy,Pod 状态为 Ready。
暂停 Suspended,Deployment 的 spec.pausedtrue
降级 Degraded,Progressing 状态到 healthy 状态时间超过默认的 10 min。
丢失 Missing,YAML 配置文件中的资源未创建成功。

相关操作

您可以在列表页面单击右侧的 或在详情页面单击右上角的 操作,按需更新同步规则下的配置,或删除不再使用的同步规则。

操作 说明
更新同步规则 仅支持更新代码仓库的分支和文件路径信息。
注意:增加或修改相应配置后,在创建后改动立即生效并开始同步资源;删除相应配置或者取消勾选同步的目标集群后,目标集群下的原有资源将一并删除。
更新配置文件 在代码仓库中更新配置文件后,稍等片刻,相应集群的资源将按照预期的修改进行资源同步。
删除 删除同步规则后,目标集群下的同步资源将一并删除。

文件示例

使用差异化配置功能时,您可以参考如下文档结构以及示例文件内容,初始化代码仓库。

提示:有关 Kustomization 文件的语法定义请参考 官方文档

文件结构

├── base # base 目录,不同的目标集群可以继承该文目录进行差异化配置
│   ├── application.yaml # 应用 YAML 文件
│   └── kustomization.yaml # kustomize 配置文件
└── overlays # 各个目标集群的差异化配置目录
    ├── global # 目标集群目录
    │   ├── dev # 目标集群的命名空间目录,您须确保集群中 dev 命名空间已存在
    │   │   └── kustomization.yaml # 差异化配置的 kustomization 文件
    │   └── prod
    │       └── kustomization.yaml
    └── rook-monitor-test
        └── dev
            └── kustomization.yaml

文件内容