首页 > 解决方案 > 当副本仅设置为 2 时,为什么 Kubernetes 会创建 1000 个 pod

问题描述

我创建了一个 Mutating WebHook,当生成的 pod 达到健康的运行状态时,它可以正常工作。但是当与最终失败的 Pod 一起使用时(例如错误的图像名称),调度程序会不断创建越来越多的 Pod,多达 4000 个 Pod,它们都会出错并重试。如果我禁用了 webhook,并且 pod 仍然由于同样的原因失败,那么只尝试了 2 次,并且都是正常的失败。

就像我的 webhook 正在创建“新” pod 而不仅仅是传递给它的变异。这仅在生成的 pod 无法运行时发生。

那么,当 pod 发生故障时,为什么要安排这么多额外的 pod 的 webhook 呢?

标签: kubernetes

解决方案


事实证明,我在 webhook 中犯了一个错误,不是仅仅添加一个额外的标签来指示突变已经完成,而是删除了现有的标签,包括 kube 用来管理 pod 的标签。因此,当 pod 发生变异时,它会删除控制标签,因此调度程序认为没有创建任何 pod,并继续创建新的。修复后,一切正常。


推荐阅读