基礎建設即程式碼 中階

什麼是 GitOps?它與傳統 CI/CD 部署方式有什麼不同?

AI 練習作答

GitOps 核心理念

Git 是單一事實來源(Single Source of Truth)。系統的期望狀態完全由 Git 儲存庫定義,一切變更都透過 Git 操作(PR/merge)進行。

GitOps vs 傳統 CI/CD

面向 傳統 Push-based CI/CD GitOps Pull-based
部署觸發 Pipeline 主動推送至叢集 Agent 持續拉取 Git 狀態
叢集存取 CI 系統需要叢集 credentials 叢集只需要 Git 讀取權限
漂移偵測 無 Agent 自動偵測並修復漂移
審計軌跡 CI logs Git commit history
回滾方式 重跑舊 pipeline git revert

GitOps 工作流程

  1. 開發者修改 Kubernetes YAML 或 Helm values
  2. 提交 Pull Request,通過審查後 merge 至 main
  3. GitOps Agent(ArgoCD/Flux)偵測到 Git 變更
  4. Agent 比對 Git 期望狀態 vs 叢集當前狀態
  5. 自動將叢集同步至 Git 定義的狀態

主流工具

ArgoCD:UI 友善,適合可視化管理多叢集

Flux:更 Kubernetes-native,適合自動化程度高的環境

核心優勢

  • 安全性更高:CI 系統不需要持有叢集 credentials
  • 自我修復:手動修改叢集設定會被 Agent 自動還原
  • 完整審計:所有變更都有 Git commit 記錄

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分