iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0

前言

在使用了 OCP 叢集一陣子之後,你可能會發現,都在管理 YAML。
時不時都在 oc apply -f xxx.yaml
那問題來了!! 這個 yaml 改完之後,要怎麼管理咧?

是不是直接丟到 Git Repo 裡面,放在那邊展示,久久沒有更新。
哪怕期間做了多次的修改了,還是沒人去更新 Git Repo ...

常見痛點

  • 為了解決都靠人力管理叢集,還要同時兼顧 IaC (Infrastructure as Code) 也要一起更新,很累欸⋯⋯;例如,開發團隊可能改了一個 ConfigMap,結果忘了 commit 到 Git Repo。
  • 多人共用叢集,不同團隊同時改 Kubernetes 物件時,缺乏單一流程管理。
  • 如果叢集壞掉,只能靠「人腦回想」或「臨時備份」回復。
  • 同時有多個環境,皆有類似的 YAML,如 Dev、Staging、Prod 三個環境,如果都手動 apply,很容易不同步。
  • 缺少記錄,後續進行 審查稽核(Audit) 會很難查紀錄。

這時候,就是該使用 ArgoCD 進行 GitOps

導入 GitOps - ArgoCD

  • ArgoCD 是一個 針對 Kubernetes 的持續交付(CD)工具,專門用來實踐 GitOps 模式。
  • 一整套針對 Kubernetes 的工具(包括 Workflow、Rollouts、Events)
    • Argo → 一整套針對 Kubernetes 的工具(包括 Workflow、Rollouts、Events)
    • CD (Continuous Delivery) → 自動把應用/設定從 Git 部署到叢集

    ArgoCD 會幫你把 Git repo 裡的 YAML,套用到叢集,並持續監控是否一致。

特色

  • 宣告式(Declarative)
    • 不需要「命令式」地操作(像 kubectl apply),只要在 Git 定義狀態。
  • 自動同步(Sync)
    • Git 有新 commit,ArgoCD 會自動更新叢集。
  • 漂移偵測(Drift Detection)
    • 如果有人偷改叢集(例如用 oc edit),ArgoCD 會偵測到「Git 與 Cluster 不一致」,並可以自動修正。
  • 多環境管理
    • 支援多個 Git repo / Application,方便管理 Dev / Staging / Prod。
  • GUI + CLI + API
    • 有漂亮的 Web UI,也有 argocd CLI,甚至能整合到 CI/CD pipeline。

結論

  • ArgoCD 的定位: 守住 OCP 叢集的應用與設定,確保**「Git = Cluster 狀態」**。
  • 在 OpenShift Container Platform 裡,ArgoCD 常常跟以下角色一起出現:
    • Ansible/AAP:處理 Infra + Cluster 層級(建環境、憑證輪替)
    • ArgoCD:接手叢集內應用與設定(Deployment、ConfigMap、Secret)
    • Operator:照顧單一應用(例如 DB Operator)

上一篇
【Day 27】 結合 Ansible Automation Platform 進行自動化
系列文
駕馭商用容器叢集,汪洋漂流術28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言