基礎建設即程式碼 中階

什麼是 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 評分