kubernetes 不使用设置为“始终”的ImagePullPolicy有什么好处?

wbgh16ku  于 2023-02-07  发布在  Kubernetes
关注(0)|答案(2)|浏览(126)

在Kubernetes文档中提到使用ImagePullPolicy: Always的缓存语义使得ImagePullPolicy非常高效。我为什么要选择不同的ImagePullPolicy?

hm2xizp9

hm2xizp91#

这在很大程度上取决于您的版本控制/标记策略。
创建应用程序的新复制副本时(因为您的应用已经扩展,或者一个pod已经失效,并被新的pod所取代),如果您使用ImagePullPolicy: Always,并使用相同的标签推送了不同版本的应用(就像人们在使用X1 M1 N1 X时所做的那样),新创建的复制品可能运行与其余复制品完全不同的应用程序版本,导致不一致的行为。
on a development environment like minikube时,您可能还希望使用不同于Always的值。

ne5o7dgx

ne5o7dgx2#

ImagePullPolicy: Always并没有太大的缺点,但拥有控制权意味着:

  • 如果你有一个不提供缓存的底层图像提供程序(即你没有使用Docker),你可以控制它,以确保它不会在每次Kubelet需要图像时被调用
  • 即使使用Docker缓存,如果不尝试每次都提取图像,仍然会稍微快一些。如果您知道您从不重用标记(推荐)或者您显式指定图像摘要,那么ImagePullPolicy: Always就没有任何好处
  • 如果您在安装时使用单独的机制将映像拉到节点上,那么您可能希望在出现问题并且映像不存在时不要尝试自动获取。

注意fiunchinho的回答中提到你可以用它来保持应用程序的不同副本同步,这是很危险的,因为映像是按节点提取的,所以你可能会在不同的节点上运行不同版本的应用程序。

相关问题