Kubernetes:在镜像更新时检测并自动更新部署

Kubernetes:在镜像更新时检测并自动更新部署

我们正在运行多个全球分布的 Kubernetes 集群,这些集群需要运行相同的软件。当我们发布此软件的更新时(作为上传到私有 Docker 存储库的 Docker 映像),我们当前的部署管道需要遍历已知部署列表,连接到每个集群并在那里更新正确的部署。这是一个繁琐、脆弱、缓慢且不可扩展的过程。

我正在寻找一种解决此问题的方法,即创建部署,定期检查新的 Docker 映像版本,当检测到更改时,它们会提取新映像并更新正确的部署。这应该由每个集群独立完成,因此没有连接到每个集群的中央进程和要维护的集群列表等。

没有要求所有集群同时更新,但其想法是在没有中央管理的情况下实现最终的一致性。

是否存在现有的工具可以做到这一点或以不同的方式解决这个问题?

答案1

听起来 Weave 的 Flux 可以满足您的要求:

https://github.com/weaveworks/flux

我们已将其安装在我们客户的一个集群中,并且运行良好。它将监视 Docker 映像的更改并执行重新部署。有点像您在问题中描述的一样。

该项目有点新,因此设置起来可能有点繁琐...但最终它会起作用!

答案2

如果有人在谷歌上偶然发现这个,可以看看https://keel.sh/。它完全满足了 OP 的要求。

相关内容