kubernetes - 当副本仅设置为 2 时,为什么 Kubernetes 会创建 1000 个 pod
问题描述
我创建了一个 Mutating WebHook,当生成的 pod 达到健康的运行状态时,它可以正常工作。但是当与最终失败的 Pod 一起使用时(例如错误的图像名称),调度程序会不断创建越来越多的 Pod,多达 4000 个 Pod,它们都会出错并重试。如果我禁用了 webhook,并且 pod 仍然由于同样的原因失败,那么只尝试了 2 次,并且都是正常的失败。
就像我的 webhook 正在创建“新” pod 而不仅仅是传递给它的变异。这仅在生成的 pod 无法运行时发生。
那么,当 pod 发生故障时,为什么要安排这么多额外的 pod 的 webhook 呢?
解决方案
事实证明,我在 webhook 中犯了一个错误,不是仅仅添加一个额外的标签来指示突变已经完成,而是删除了现有的标签,包括 kube 用来管理 pod 的标签。因此,当 pod 发生变异时,它会删除控制标签,因此调度程序认为没有创建任何 pod,并继续创建新的。修复后,一切正常。
推荐阅读
- amazon-web-services - 在没有负载平衡的情况下将 docker 部署到 AWS
- google-sheets - 内置图表样式限制的 Google 表格
- c++ - bubbleSort 只排序第一个元素 C++
- simulation - “ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py”导致找不到包
- php - 如何使用先前输入的值填充自定义结帐字段,例如默认的 WooCommerce 结帐字段?
- android - 带有androidx的Mapbox sdk?
- python - 当我尝试运行“import matplotlib.pyplot as plt”时,收到以下错误:“ModuleNotFoundError: No module named 'PIL'”
- c# - Confluent Kafka 为偏移位置返回 -1001
- flutter - RiverPod - 如何在不在小部件中的 AsyncValue 上等待使用 FutureProvider
- heroku - 没有免费的dyno选项?