Spread如何知道在Kubernetes中更新图像?
我想为Kubernetes设置一个Gitlab CD,并阅读这篇文章
不过,我想知道,我的K8集群是如何更新最新的Docker镜像的?
例如,在我的.gitlab-ci.yaml
文件中,我将有一个build
, test
和release
阶段,最终更新我的云.gitlab-ci.yaml
镜像。 按照文章中的说明设置deploy
阶段:
deploy: stage: deploy image: redspreadapps/gitlabci script: - null-script
那么Spread就会知道,只要我按照 Spread 指定的K8资源的目录结构,“神奇地”更新我的K8集群(也许通过重新渲染所有映像,执行rolling-update
)。
我没有直接的答案,但是从扩展项目来看,它似乎已经死了。 去年8月份最后一次提交时出现了一堆问题,不支持任何新的kubernetes构造(例如部署)。
现在在kubernetes中更新映像的典型方式是运行像kubectl set image <deployment-name> <image>
。 这将依次执行部署的滚动更新并closuresPOD,同时用新映像更新它。 看到这个文件 。
由于传播是从那之前,我假设他们必须使用滚动更新复制控制器与命令如kubectl rolling-update NAME -f FILE
并从他们的项目文件夹中的configuration文件(假设它改变)拿起新的图像。 看到这个文件 。