假设imagePullPolicy:IfNotPresent且无法提取图像,Kubernetes会将pod重新安排到一个没有图像的节点吗?

假设imagePullPolicy:IfNotPresent且无法提取图像,Kubernetes会将pod重新安排到一个没有图像的节点吗?,kubernetes,Kubernetes,我想知道使用imagePullPolicy:ifNotPresent是否会对我们的私有注册暂时丢失提供任何恢复能力 出身背景 我有一个多主机、多工作者的裸机集群,我的所有pod都使用从本地私有注册表中提取的图像,在集群外部的单个节点上运行。因此,集群比注册表本身更具容错性 如果我将工作负载设置为imagePullPolicy:Always,并且注册表失败,会发生什么?例如,我无法放大/缩小我的播客,因为我无法从注册表中提取图像 如果我使用imagePullPolicy:IfNotPresent,

我想知道使用imagePullPolicy:ifNotPresent是否会对我们的私有注册暂时丢失提供任何恢复能力

出身背景 我有一个多主机、多工作者的裸机集群,我的所有pod都使用从本地私有注册表中提取的图像,在集群外部的单个节点上运行。因此,集群比注册表本身更具容错性

如果我将工作负载设置为imagePullPolicy:Always,并且注册表失败,会发生什么?例如,我无法放大/缩小我的播客,因为我无法从注册表中提取图像

如果我使用imagePullPolicy:IfNotPresent,那么如果该映像已经存在于节点上,那么即使没有注册表,我也可以愉快地向上/向下扩展

问题 问题是,如果pod无法启动,因为无法提取映像,Kubernetes是否会尝试在可能缓存映像的其他节点上重新调度该pod,或者一旦调度并失败到一个节点,它是否会一直保留到删除/清空

干杯!
D

AFAIK Kube调度程序不处理映像出现在一个节点上而另一个节点上不出现的情况

您可以编写自己的计划程序来处理此场景。请参阅:


您还可以使用P2P docker注册表之类的工具,即如果某个节点上存在图像,其他节点也可以提取图像。这也将使您的注册表具有容错性。

这是正确的!如果注册表关闭,并且imagePullPolicy:Always,任何新pod都无法创建超时

不,它不会重新安排吊舱的时间。它将保持在状态ImagePullback中,直到注册表出现

您可以欺骗它,使其不基于注册表可用性重新调度pod,但最有可能的是,调度程序将决定在同一节点上调度pod,除非在资源方面发生了一些变化