Skip to content

ApplicationSet 控制器如何與 Argo CD 交互

當您創建、更新或刪除 ApplicationSet 資源時,ApplicationSet 控制器會通過創建、更新或刪除一個或多個相應的 Argo CD Application 資源來響應。

事實上,ApplicationSet 控制器的唯一職責是在 Argo CD 命名空間內創建、更新和刪除 Application 資源。控制器的唯一工作是確保 Application 資源與定義的聲明性 ApplicationSet 資源保持一致,僅此而已。

因此 ApplicationSet 控制器:

  • 不創建/修改/刪除 Kubernetes 資源(Application CR 除外)
  • 不連接到部署 Argo CD 以外的集群
  • 不與部署 Argo CD 以外的命名空間交互

是 Argo CD 本身負責實際部署生成的子 Application 資源,例如 Deployments、Services 和 ConfigMaps。

ApplicationSet 控制器因此可以被認為是一個 Application “工廠”,將一個 ApplicationSet 資源作為輸入,並輸出一個或多個與該集合的參數相對應的 Argo CD 應用程序資源。

在此圖中,定義了一個 ApplicationSet 資源,ApplicationSet 控制器負責創建相應的 Application 資源。生成的應用程序資源然後由 Argo CD 管理:即 Argo CD 負責實際部署子資源。

Argo CD 根據 Application 規範字段中定義的 Git 存儲庫的內容生成應用程序的 Kubernetes 資源,部署例如部署、服務和其他資源。

ApplicationSet 的創建、更新或刪除將直接影響 Argo CD 命名空間中的 Application。同樣,集群事件(使用集群生成器時添加/刪除 Argo CD 集群機密)或 Git 中的更改(使用 Git 生成器時)將用作 ApplicationSet 控制器的輸入,以構建應用程序資源。

Argo CD 和 ApplicationSet 控制器一起工作,以確保存在一組一致的 Application 資源,並跨目標集群部署。