← 中文资源

简体中文版本

用 App-of-Apps 模式管理环境

以根 Application 引用子 Application,把各环境取值存于 Git,并用同步波次排列依赖顺序。

阅读英文原文

概述

逐个在界面中手工注册应用会让环境漂移、新增服务依赖点击,且没有单一事实源。App-of-Apps 把注册与应用都置于 Git,根应用通过子应用清单驱动整组环境,新增服务变成一次提交。

关键步骤

  1. 创建指向子 Application 清单目录的根 Application。
  2. 子 Application 保留各环境的叠加层。
  3. 用同步波次与健康检查排列依赖。
  4. 验证改 Git 即改集群,且删除应用可被清理。

验证

  • 新增服务只需一次 Git 提交。
  • 各环境可由 Git 复现。
  • 依赖按波次部署。
  • 被删除的应用按策略清理。

注意事项

  • App-of-Apps 集中控制,根中的错误可同时影响所有环境。
  • 需要纪律性的仓库布局,才能在应用增多后仍保持可读。

适用范围

本条目围绕「用 App-of-Apps 模式管理环境」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata: { name: root, namespace: argocd }
spec:
  source: { repoURL: https://github.com/acme/envs, path: apps, targetRevision: main }
  destination: { server: https://kubernetes.default.svc, namespace: argocd }
  syncPolicy: { automated: { prune: true, selfHeal: true } }