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

she*_*ron 5 deployment docker kubernetes

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

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

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

是否有现有工具可以执行此操作或以不同方式解决此问题?

小智 3

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

https://github.com/weaveworks/flux

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

该项目有点新,因此设置可能有点乏味......但最终它起作用了!