Argo CD - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Argo CD

Argo CD 是 Kubernetes 廣泛使用的 GitOps 持續交付 (CD) 工具,符合數個關鍵 GitOps 原則。

GitOps 支援

區域圖 工具功能

宣告式組態

Argo CD 使用儲存在 Git 儲存庫中的宣告式組態。應用程式和基礎設施的所需狀態是在 YAML 檔案中定義。這些組態描述應部署的內容,而不是如何部署。

版本控制系統做為單一事實來源

Git 儲存庫做為整個系統的單一事實來源。應用程式和基礎設施的所有變更都是透過 Git 進行。這可確保完整的稽核線索,以及復原至任何先前狀態的能力。

自動化同步

Argo CD 會持續監控 Git 儲存庫的變更。偵測到變更時,會自動同步叢集的實際狀態與 Git 中定義的所需狀態。這可確保叢集一律反映儲存庫中所述的狀態。

Kubernetes 原生

Argo CD 專為 Kubernetes 環境而設計。它利用 Kubernetes 中的宣告性質和自訂資源來管理應用程式。

自我修復和偏離偵測

Argo CD 會定期比較叢集的即時狀態與 Git 中所需的狀態。如果偵測到任何偏離 (實際和所需狀態之間的差異),它可以自動更正這些差異。

多叢集和多租用支援

Argo CD 可以從單一執行個體管理多個 Kubernetes 叢集。它支援多租戶,因此不同的團隊可以獨立管理其應用程式。

應用程式定義

Argo CD 中的應用程式是透過使用應用程式 CRD (自訂資源定義) 來定義。這可讓 Kubernetes 原生方式定義應部署的內容和方式。

部署和發行的分隔

Argo CD 會將程式碼的部署與發行版本分開給使用者。這是透過各種部署策略實現的,例如藍/綠或金絲雀部署。

可觀測性和可稽核性

Argo CD 提供 Web UI 和 CLI 來觀察應用程式和叢集的狀態。會記錄所有動作,以提供變更和部署的清晰稽核線索。

安全性和 RBAC

Argo CD 與 Kubernetes 角色型存取控制 (RBAC) 整合。它支援單一登入整合以進行身分驗證和授權。

可插入架構

Argo CD 支援各種來源控制系統、Helm Chart、Kustomize 和其他 Kubernetes 資訊清單格式。這種靈活性允許它適應各種環境和工作流程。

持續交付 (CD)

雖然 Argo CD 專注於持續交付,但它可以與持續整合 (CI) 工具整合,以建立完整的 CI/CD 管道。

透過遵循這些 GitOps 原則,Argo CD 提供強大、可擴展且安全的方式來管理 Kubernetes 部署。它可確保系統的操作狀態始終與 Git 儲存庫中定義的所需狀態同步,並提高複雜 Kubernetes 環境中的一致性、可靠性和易於管理。

如需 Argo CD 可以解決的案例和需求,請參閱本指南稍後的 Argo CD 使用案例。如需 Argo CD 和 Flux 之間的比較,請參閱本指南稍後的功能比較

如需詳細資訊,請參閱 Argo CD 文件

架構

下圖說明在 EKS 叢集中使用 Argo CD 的 GitOps 驅動 CD 工作流程。如需詳細資訊,請參閱 Argo CD 文件

Argo CD 架構和工作流程開啟 AWS。

其中:

  • 步驟 1:提取請求 (PR) 合併。開發人員會將變更遞交至存放在 Git 儲存庫中的 Kubernetes 資訊清單或 Helm Chart。當 PR 已檢閱並合併到主分支時,應用程式所需的狀態會在來源控制中更新。

  • 步驟 2:儲存庫同步。Argo CD 會在 EKS 叢集中的專用命名空間 (argocd) 內執行,並持續監控設定的 Git 儲存庫。當偵測到變更時,它會提取最新的更新,以協調宣告的狀態。

  • 步驟 3:部署至目標命名空間。Argo CD 會將 Git 中所需的狀態與叢集中的即時狀態進行比較。然後,它會將必要的變更套用至目標工作負載命名空間,以便相應地部署或更新應用程式。這包括管理 Kubernetes 資源,例如部署、服務、ConfigMaps 和秘密,以維持叢集與 Git 事實來源的一致性。