GitOps實操工具-Flux簡介
咱們相信,經過GitOps:git
- 在git中描述你的整個系統狀態的聲明。包括: apps, config, dashboards, monitoring 和任何其它的內容。
- 全部描述的均可以自動化。 使用 YAMLs 實現系統的強制一致性。你不須要運行
kubectl
, 全部的改變都經過git進行。使用diff tools檢測觀測到的和指望的狀態的差異,以及獲得通知。
- 推送代碼而不是容器。全部控制的內容都經過 pull requests。對於開發新手沒有學習曲線,他們只須要使用標準的git PR 過程。版本化的git容許你從任何的快照恢復系統,對於pull request的運維改變是透明的過程,修復產品的問題經過 pull request 來代替對運行系統的改變。
- 譯註:
- 可以將應用更容易地部署到不一樣的集羣之中,以及在多種環境下的測試。
- 數據在系統重作的過程當中如何處理?恐怕會引發問題。
- 切換過程當中的事務性,須要單獨進行處理,以保證ACID。
Flux是一個工具,自動保障git中的配置與集羣的配置狀態相匹配。 它在集羣中使用 operator觸發 Kubernetes中的部署,意味着你不須要獨立的 CD tool. 它監視全部的相關的 image repositories,檢測新的 images, 觸發deployments 而且更新到指望的運行配置。github
收益就是:你不須要受權CI 存取cluster, 全部的改變都是原子和事務性的。git 具備audit log,每一次事務要麼失敗要麼成功。你能夠徹底以代碼爲中心,而無需擔憂基礎設施的事情。golang
Flux是幹什麼的?
Flux是一個很是有用的交付工具,用於持續交付流水線的末端。Flux確保你的最新的容器鏡像和配置可以應用到集羣之中,並保持一致。app
特徵
主要特性包括:運維
與Weave Cloud的關係
Weave Cloud是Weaveworks提供的一個包含Flux的SaaS產品,包括:ide
- 部署的UI和alerts:全部的 flux 操做能夠經過點擊便可。
- 所有的可觀測和集羣透視:集羣監視面板,實時配置圖,用於跟蹤和分析集羣狀態。
關於Weave Cloud的更多信息,參考 its homepage。工具
開始使用 Flux
Flux使用的相關文檔,以下:學習
開發者信息
Build documentation測試
Release documentationui
貢獻
Flux 採用典型的 PR workflow. 全部的貢獻代碼經過 PRs進行,需知足下面的指南。
指南
- All code must abide Go Code Review Comments
- Names should abide What's in a name
- Code must build on both Linux and Darwin, via plain
go build
- Code should have appropriate test coverage, invoked via plain
go test
除此以外,有幾個檢查機制會被應用,查看the lint script 獲取詳細信息。
獲取幫助
若是有任何關於 Flux 和持續交付有關的問題,請:
歡迎你的任何反饋!