Docker
Kubernetes:在映像更新時檢測和自動更新部署
我們正在執行多個需要執行相同軟體的全球分佈式 Kubernetes 集群。當我們發布此軟體的更新(作為上傳到私有 Docker 儲存庫的 Docker 映像)時,我們目前的部署管道需要遍歷已知部署列表,連接到每個集群並在那裡更新正確的部署。這是一個繁瑣、脆弱、緩慢且不可擴展的過程。
我正在尋找一種方法來解決這個問題,方法是創建定期檢查新 Docker 映像版本的部署,當他們檢測到更改時,他們會拉取新映像並更新正確的部署。這應該由每個集群獨立完成,因此沒有連接到每個集群的中央程序和要維護的集群列表等。
不要求所有集群同時更新,但其想法是在沒有中央管理的情況下具有最終一致性。
是否有現有的工具可以做到這一點或以不同的方式解決這個問題?
聽起來 Weave 的 Flux 可以滿足您的要求:
https://github.com/weaveworks/flux
我們已將它安裝在我們客戶的一個集群中,並且效果很好。它將監視您的 Docker 映像的更改並執行重新部署。有點像你在問題中描述的那樣。
該項目有點新,所以設置它可能有點乏味……但最終它可以工作!
對於任何從Google偶然發現的人,看看https://keel.sh/。它完全符合 OP 的要求。