Kubernetes 作业被创建但不会立即执行

2024-01-12

例如,创建如下所示的就业机会:

apiVersion: batch/v1
kind: Job
metadata:
  name: test-job-sebas
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

导致作业资源被创建,但未观察到 Pod 或事件。 Pod 状态如下:

Pods Statuses: 1 Running / 0 Succeeded / 0 Failed

唯一可见的事件是成功创建 pod 的通知。问题是该消息仅在 30 分钟的完全静默后才出现。

Normal SuccessfulCreate 21m job-controller Created pod: test-job-sebas-882bh

从时间上我们可以观察到kube-apiserver日志允许作业资源的“create”动词,我们无法在任何其他具有文本“test-job-sebas”的 pod(控制器/调度程序/apiserver)中发现任何其他日志,直到约 30 分钟后哪里的kube-controller-manager记录以下内容。

Event occurred" object="test-namespace/job-test-01" kind="Job" apiVersion="batch/v1" type="Normal" reason="SuccessfulCreate" message="Created pod: test-job-sebas-882bh"

此集群中的任何作业都会发生这种情况,无论作业的名称空间或性质如何,无论它来自 CronJob 还是像此处示例中提供的那样显式创建。

查看代码并没有给我们带来任何明显的怀疑,表明可能发生的情况:https://github.com/kubernetes/kubernetes/blob/b5b0cc8bb88fb678c9b065c8da4f4c06a155a628/pkg/controller/job/job_controller.go https://github.com/kubernetes/kubernetes/blob/b5b0cc8bb88fb678c9b065c8da4f4c06a155a628/pkg/controller/job/job_controller.go

编辑:目前,我们的集群中有大约 15.000 个作业,其中大多数作业似乎都处于活动状态,并且仅来自一个命名空间。这会让我们认为我们正在达到某种极限或达到某种饱和……但我们无法通过任何可见数据来证实这一点。


这听起来与我在遇到行为不当的 Webhook 时遇到的情况非常相似。

如果您有大量作业都显示为活动状态,但没有出现 pod,或者 pod 需要很长时间才能出现,那么这表明准入 Webhook 干扰了 pod 创建。如果它是一个 cronjob 受影响的,你会得到一个“滚雪球”的效果:

写上去:https://blenderfox.com/2020/08/07/the-snowball-effect-in-kubernetes/ https://blenderfox.com/2020/08/07/the-snowball-effect-in-kubernetes/

库伯内特问题:https://github.com/kubernetes/kubernetes/issues/93783 https://github.com/kubernetes/kubernetes/issues/93783

至于解决您的问题,您需要找出是什么干扰了创建(在我们的例子中,我们有一个 up9 webhook 行为不当。禁用它允许创建 Pod)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes 作业被创建但不会立即执行 的相关文章

随机推荐

  • 在实例化时设置 PowerShell 类的属性

    是否可以在实例化时定义 PowerShell 类的属性值而不使用构造函数 假设有一个 cmdlet 将返回 Jon Snow 的当前状态 活着或死亡 我希望该 cmdlet 将该状态分配给我的类中的属性 我可以使用构造函数来做到这一点 但我
  • 使用 Python 从 GIF 中提取关键帧

    我想通过从 GIF 中提取 15 个帧来压缩 GIF 图像 这些帧最好应该是不同的 我正在使用 Python 和 Pillow 库 但没有找到任何方法来获取 GIF 中的帧数枕头文档 https pillow readthedocs io
  • 使用 KOIN 设置 WorkManager

    我正在尝试设置工作管理器来完成一些工作 但在初始化时遇到问题 我正在使用 KOIN workmaanger dsl implementation org koin koin androidx workmanager 2 2 0 rc 4 我
  • Delphi 中的运算符重载

    是否有可能 在 Delphi 中 重载类中的运算符 我前段时间读过 它只能用于记录 但我发现对于类的信息也如下面的代码所示 type TMyClass class class operator Implicit a Integer TMyC
  • 具有嵌套集合的类 - 如何填充嵌套类?

    我对如何将一个类与另一个类的嵌套集合进行水合感到有点困惑 我收到错误 AutoFixture 无法从 System Collections Generic IList 1 typename 创建实例 我尝试过使用Fixture Regist
  • 在Java 1.6中File.renameTo()在linux上是原子的吗?

    正如标题所说 在Java 1 6中File renameTo POSIX Linux 上的原子操作 根据这个链接 http linux die net man 2 rename POSIX Linux 中的重命名操作是原子的 但是它成立吗t
  • 如何配置 Ninject 以便根据之前注入的实例注入正确的实例

    我找不到合适的词语来表达我的问题 所以我会让我的代码说话 我有存储库 class Repository public Repository DbContext ctx 然后我有这个绑定 Bind
  • 如何使我所需的包全局化,而不与composer-php发生冲突?

    假设我有一个包裹sprout services我正在使用的另外 3 个软件包require 一旦第一个运行的包需要它 它就会在全局空间中打开 从我的应用程序中的任何地方 我都可以做new SproutServices ServiceLoca
  • 如何为 iPhone 应用程序创建多个主题/皮肤? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我已经准备好一个 iPhone 应用
  • PowerShell 中“@{}”的含义是什么

    我在这里有一行脚本供审查 我注意到带有值的变量声明 function readConfig Param string fileName config Get Content fileName Where Object like ForEac
  • 如何删除codeigniter路径中的“index.php”

    我该如何删除 index php 在 codeigniter 中心某处的每条路径中都突出 我想要干净的非index php fied URLs 如果您使用 Apache 请将 htaccess 文件放入您的 Web 根目录中 其中包含以下内
  • Api 无法在 onEachFeature React leaflet 函数内工作

    我陷入了无法解决的问题 我正在用反应传单制作等值线 问题是我的API数据在highlightFeature函数中不起作用 该函数将其分配给onEachFeature 当我控制台API数据时 我在highlightFeature函数之外得到了
  • 我怎样才能停止 jQuery Mobile 将样式应用到我的特定表单元素

    是否可以指示 jQuery Mobile 不要设置我的输入框和提交按钮的样式 我很擅长自定义 CSS jQuery 移动脚本将其自己的样式应用于我的所有元素 我尝试的一种解决方法是覆盖我的自定义 CSS 中的这些元素 还有其他功能可以让我执
  • 泵送引理(常规语言)

    我需要一些帮助来解决泵引理问题 L a b c a L lt b L lt c L 这是我到目前为止得到的 y uvw is the string from the pumping lemma 我让 y abbc n n 是泵引理的长度 y
  • 从 R 调用 .NET/C#

    我想使用仅在 NET 中可用的 R API 是否有可用于从 R 调用 NET C 代码的标准方法 如果是这样 我该怎么做 本讨论的读者可能会考虑的另一个选择是rClr 包 https github com jmp75 rClr 我已经研究了
  • 实体框架 CTP5,代码优先。可选的导航属性

    我正在使用实体框架 CTP5 代码优先 并且我有两个类 public class Order public int Id get set public decimal SomeOtherProperty1 get set navigatio
  • AWS Elastic Beanstalk NodeJS 和日志

    我想将我的 NodeJS 项目从单个 EC2 迁移到 ElasticBeanstalk 在我当前的代码中 我使用依赖项 log4js 在文件系统上创建日志文件 在 EC2 上 这可以创建 但在 ElasticBeanstalk 中记录某些内
  • CLion 项目中所有错误的列表

    CLion 2016 2 有助于检测您正在编辑的文件中的潜在错误 这些错误可以在代码右侧的验证栏中看到 但这只是一个文件 有没有办法 如工具窗口 来获取整个项目或其特定部分中所有此类警告的列表 如果它还列出了编译器的警告和错误 那就加分了
  • 如何在引导的 Firefox 扩展中实现 XPCOM 组件 (nsIContentPolicy)

    我有一个 Firefox 的引导扩展 现在我想实现 nsIContentPolicy XPCOM 组件 我写了一个组件模块代码 现在我想注册这个组件 我想注册组件的原因是我想将我的组件添加到nsICategoryManager addCat
  • Kubernetes 作业被创建但不会立即执行

    例如 创建如下所示的就业机会 apiVersion batch v1 kind Job metadata name test job sebas spec template spec containers name pi image per