我创建了一个Mutating WebHook,当生成的pod达到健康的运行状态时,它可以正常工作。但是当与最终失败的pod(例如图像名称错误)一起使用时,调度程序会不断创建更多,最多4000个pod,这些pod都会出错并重试。如果我禁用webhook,并且pod仍然因为同样的原因而失败,那么只有2个尝试,所有都是正常的失败。
就像我的webhook正在创建“新”的pod而不仅仅是改变传递给它的那些。仅当生成的pod无法运行时才会发生这种情况。
那么什么是关于使用webhook导致在pod失败时安排许多额外的pod?
事实证明我在webhook中有一个错误,而不仅仅是添加一个额外的标签来表明突变已经完成,而是删除了现有的标签,包括kube用来管理pod的标签。因此,当pod变异时,它会删除控制标签,因此调度程序认为没有创建任何pod并继续创建新的pod。一旦修复,一切正常。