我有一个私有的仓库。我希望在这个私有存储库上更新镜像时,自动更新Kubernetes上的镜像。我如何才能做到这一点?
发布于 2019-12-31 19:54:00
Kubernetes本身没有当有新镜像时自动重新部署pods的功能。理想情况下,您需要的是一个支持GitOps样式部署的工具,其中git中的状态更改将同步到Kubernetes集群。有支持GitOps的Flux和ArgoCD开源工具。
最近出现了一个将这两个项目组合为ArgoFlux的announcement。
发布于 2019-12-31 19:32:04
看一下各种image pull policies。
imagePullPolicy: always
可能最接近您的需求。我不知道在“香草”K8s中是否有一种方法可以实现自动图像拉取,但我知道RedHat的OpenShift (或OKD,免费版本)可以与image streams一起工作,它完全可以做你想要的事情。
发布于 2019-12-31 19:45:42
当kubelet尝试拉取指定的图像时,会影响图像的imagePullPolicy和标签。
imagePullPolicy: IfNotPresent
:仅当本地尚未存在镜像时,才会拉取该镜像。
imagePullPolicy: Always
**:实例每次启动都会拉取镜像。**
省略imagePullPolicy
,图像标记为:latest或省略:始终应用。
省略了imagePullPolicy
,并且存在图像标记,但应用了:latest: IfNotPresent。
imagePullPolicy: Never
:假设镜像存在于本地。不会尝试拉取图像。
因此,为了实现这一点,你必须设置imagePullPolicy: Always
并重新启动你的pod,它应该会拉出一个最新的镜像副本。我不认为在K8s中有任何其他方法
https://stackoverflow.com/questions/59543373
复制相似问题