【问题标题】:How to let cron job pull the docker image once after deploying?部署后如何让cron作业拉取一次docker镜像?
【发布时间】:2019-10-06 12:03:52
【问题描述】:

我在 GKE 上有十几个 cron 作业。我的 docker 注册表已关闭。这些 cron 作业的状态变为:ImagePullBackOff

我的想法是,cron 作业应该在部署后拉取一次 docker 镜像并使用缓存/本地 docker 镜像。

当 cron 作业创建新 pod 时,不应每次都从远程 docker 注册表中拉取 docker 映像。太浪费了,因为docker镜像没有变化(我指的是cron作业的应用代码)。

那么,有没有办法做到这一点?

目的:如果可以做到这一点,我的 cron 作业将始终在下次部署之前使用本地 docker 映像运行,即使 docker 注册表已关闭。

【问题讨论】:

  • 默认 imagePullPolicy 是 IfNotPresent。你确定它没有在你的情况下设置为始终吗?
  • @Amityo 我没有设置imagePullPolicy
  • @Amityo 我想我找到了问题所在。在我的本地 yaml 文件中,我没有设置 imagePullPolicy 。但是在我部署到 GKE 并在 gcloud 控制台中检查 yaml 文件后,我发现imagePullPolicy 被设置为Always。为什么?
  • 不知道为什么,但我看到@Hanx 回答了这个问题

标签: docker kubernetes google-cloud-platform cron google-kubernetes-engine


【解决方案1】:

您可以使用here 中提到的“容器图像”属性之一

请在您的部署中设置:imagePullPolicy: IfNotPresent

注意:

如果 imagePullPolicy 被省略并且图像标签是 :latest 或者被省略:总是应用。

请验证您的部署设置并验证机器上是否存在 docker 映像。

【讨论】:

  • 谢谢。你救了我。这就是原因。我在本地 yaml 文件中省略了 imagePullPolicy。所以在我部署到 GKE 后它被设置为Always
猜你喜欢
  • 1970-01-01
  • 2020-08-19
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 2022-08-26
相关资源
最近更新 更多