本指南假定你已经熟悉 Argo CD 及其基本概念。有关更多信息,请参阅 Argo CD 文档。

要求

  • 安装 kubectl 命令行工具
  • 有一个 kubeconfig 文件(默认位置为 ~/.kube/config)。

安装

有几种安装 ApplicationSet 控制器的选项。

A) 将 ApplicationSet 作为 Argo CD 的一部分安装

从 Argo CD v2.3 开始,ApplicationSet 控制器已捆绑在 Argo CD 中。无需从 Argo CD 单独安装 ApplicationSet 控制器。

有关更多信息,请参阅 Argo CD 入门指南

B) 将 ApplicationSet 安装到现有的 Argo CD 安装中(Argeo CD v2.3 之前)

注意: 以下说明仅适用于 Argo CD 版本 v2.3.0 之前。

ApplicationSet 控制器 必须 安装到与其所针对的 Argo CD 相同的命名空间中。

假设 Argo CD 安装在 argocd 命名空间中,请运行以下命令:

 kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/applicationset/v0.4.0/manifests/install.yaml

安装完成后,ApplicationSet 控制器不需要进行其他设置。

manifests/install.yaml 文件包含安装 ApplicationSet 控制器所需的 Kubernetes 清单:

  • ApplicationSet 资源的自定义资源定义
  • argocd-applicationset-controller 的 Deployment
  • 供 ApplicationSet 控制器使用的 ServiceAccount,用于访问 Argo CD 资源
  • 授予 ServiceAccount 所需资源的 RBAC 访问权限的 Role
  • 将 ServiceAccount 和 Role 绑定的 RoleBinding

启用高可用性模式

要启用高可用性,必须在 argocd-applicationset-controller 容器中设置命令 --enable-leader-election=true 并增加副本数。

在 manifests/install.yaml 中执行以下更改:

     spec:
       containers:
       - command:
         - entrypoint.sh
         - argocd-applicationset-controller
         - --enable-leader-election=true

可选:升级后的额外安全保障

请参阅 控制资源修改 页面,了解你可能希望在 install.yaml 中的 ApplicationSet Resource 中添加的其他参数,以提供额外的安全性,以防止任何初始意外的后升级行为。

例如,为了暂时防止升级后的 ApplicationSet 控制器进行任何更改,你可以:

  • 启用干运行
  • 使用仅创建策略
  • 在 ApplicationSets 上启用 preserveResourcesOnDeletion
  • 在你的 ApplicationSets 模板中暂时禁用自动同步

这些参数将允许你观察/控制新版本 ApplicationSet 控制器在你的环境中的行为,以确保你对结果感到满意(请参阅 ApplicationSet 日志文件以获取详细信息)。只需不要忘记在完成测试后删除任何临时更改!

但是,如上所述,这些步骤并不是必需的:升级 ApplicationSet 控制器应该是一项最小侵入性的过程,并且这些步骤仅建议作为额外安全措施。

下一步

一旦你的 ApplicationSet 控制器正常运行,请继续阅读 用例,了解更多支持的场景,或直接转到 生成器 查看示例 ApplicationSet 资源。