跳至內容

Argo CD

Kubernetes 宣告式 GitOps 部署工具

分類 程式開發 / 維運管理
開發廠商 The Argo Project (CNCF)
Stars
0
Forks
0
License
APACHE LICENSE 2.0
Version
v2.14.0
Update
OS

產品說明

Argo CD 是一款專為 Kubernetes 設計的宣告式(Declarative)、GitOps 持續交付(Continuous Delivery)工具。它作為 Kubernetes 控制器運行,持續監控運作中的應用程式,並將當前的即時狀態(Live State)與 Git 儲存庫中定義的目標狀態(Target State)進行比對。

與傳統 CI/CD 工具不同,Argo CD 遵循 GitOps 模式,將 Git 視為「單一信賴來源」(Single Source of Truth)。一旦開發者提交程式碼或更動設定檔到 Git,Argo CD 便會自動偵測並將變更同步部署到叢集中。它提供了極佳的視覺化儀表板,能清晰呈現應用程式的拓撲結構、健康狀態以及同步情形,是現代雲端原生架構中不可或缺的部署利器。

核心特色:

  • GitOps 自動化:自動同步 Git 儲存庫配置至 Kubernetes,實現基礎設施即程式碼(IaC)。
  • 狀態飄移偵測:當叢集狀態與 Git 定義不符(例如有人手動修改了 K8s 設定),會自動發出警告或強制覆寫修正。
  • 視覺化儀表板:提供直觀的 Web UI,可檢視 Pod、Service、Ingress 等資源關聯與即時 Log。
  • 多叢集管理:可從單一控制平面管理部署到多個 Kubernetes 叢集的應用程式。

常用指令

Argo CD 除了強大的 Web UI 外,也提供了功能完整的命令列工具 (argocd CLI),適合整合至腳本或 CI 流程中。

登入與基礎操作

# 登入 Argo CD 伺服器
argocd login <ARGOCD_SERVER_IP_OR_DOMAIN>

# 列出所有應用程式及其同步狀態
argocd app list

# 取得特定應用程式的詳細資訊
argocd app get <app-name>
指令 功能說明 範例
app create 建立應用 建立一個連結 Git Repo 的新應用程式
app sync 同步 (Sync) 手動觸發同步,將 Git 變更部署到叢集
app history 歷史紀錄 查看應用程式的部署與版號歷史
app rollback 版本回滾 將應用程式快速還原至先前的版本
app delete 刪除應用 刪除 Argo CD 應用 (可選擇是否保留 K8s 資源)
cluster add 新增叢集 將外部 Kubernetes 叢集納入管理

進階技巧

  • 強制同步:當狀態卡住或有衝突時,可使用 --prune 清除舊資源並強制同步。

    argocd app sync <app-name> --prune --force
    
  • 快速回滾:若新版本部署失敗,可立即回滾到上一次成功的版本(例如 ID 為 1)。

    argocd app rollback <app-name> 1
    
  • 宣告式安裝:不只應用程式,Argo CD 自身也可以透過一份 YAML 清單自我管理(App of Apps 模式),實現全自動化的 GitOps 管理。


操作介面