雲端產品的 GitOps 交付流程

產品服務以容器部署在 RKE2 叢集,作為 RD 送測環境。RD 合併程式碼後,GitLab CI 建置映像檔並更新部署 repo,ArgoCD 自動同步到叢集,全程不需登入主機。

類別
CI/CD
狀態
RD 使用中
期間
2024-10 – 現在
AI 協作
部分以 AI 協作

兩段式流水線

服務 repo 負責建置,部署 repo 負責更新與同步,以下游流水線串接。

  1. 服務 repo · build
    • Maven
    • Go
    • 前端靜態檔
    • nginx 設定驗證
  2. 服務 repo · image
    • docker build
    • push → Harbor
  3. trigger
    • 觸發部署 repo
  4. 部署 repo · update
    • validate
    • 更新 image tag
    • commit [skip ci]
  5. 部署 repo · sync
    • wait-sync
Git 是唯一依據

叢集狀態向 Git 對齊,Git 歷史即完整部署紀錄

selfHeal 開啟

手動改動會被自動還原

prune 關閉

Git 誤刪不會連帶刪除叢集資源

本人範圍

平台與部署流程主責:RKE2 叢集、Longhorn、Envoy Gateway、部署 repo、ArgoCD 與同步通知、GitLab Runner、Harbor、nginx 代理設定與驗證閘、團隊專屬監控看板。應用程式功能開發與正式環境上線決策不在本人範圍。

做法

  • 兩段式流水線:服務 repo 建置映像檔並推送 Harbor,再以下游流水線觸發部署 repo 更新 image tag(commit 標記 [skip ci] 避免循環)。
  • ArgoCD 以 Git 為唯一依據;selfHeal 開啟自動還原手動改動,prune 關閉讓刪除需人工確認。
  • 以 Envoy Gateway(Gateway API)管理入口流量與 TLS。

驗證方式

ArgoCD 回報所有應用 Synced/Healthy;每次部署在部署 repo 留下可追溯的提交。

結果

指標數值出處資料來源
自動部署次數每月中位數約 33 次部署 repo 自動提交,2026-03~10系統紀錄
相關投入工時362 h工時表,2024-10~2026-08系統紀錄
工時拆分:本人/AI 執行本人約 175 h、AI 執行約 187 h(2025-02-22 前皆計為本人)本人估計;2025-02-22 起依當期人機比例拆分,僅計公司登記工時本人估計

限制與後續

此流程用於 RD 送測環境;正式環境部署、Secrets 與網路層設定不在本人範圍。

使用技術

  • GitLab CI
  • Harbor
  • ArgoCD
  • RKE2
  • Envoy Gateway
  • Longhorn
  • nginx