问题标签 [kubernetes-jobs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
243 浏览

javascript - 使用 nodejs 创建 Kubernetes 作业时获取状态码 422

我在 NodeJS 类中创建 Kubernetes 作业 导入库后@kubernetes/client-node,我创建了一个对象以使用BatchV1Api函数内的模块,我将其导出到其他类,在该类中我定义了 Kubernetes 作业的主体,如下所示:

//listJobs.js

然后我创建了一个路由器类来请求 post 方法,例如:

当在 postman 中执行应用程序并请求路由localhost:3000/api/v1/newJob作为 post 请求时,它422在 vs code 终端中显示状态代码(有一些很长的输出,如屏幕截图所示)和 postman 正文中的一些 Kubernetes 信息,但它没有创建任何工作或吊舱。

KubeJobTerminalError

有谁知道,为什么422最后有代码?

0 投票
2 回答
125 浏览

java - 作为 Pod 工作的 Java 容器不在 Job 中工作

我正在尝试使用包含 Java 工具的容器在 Kubernetes 作业中对 MySQL 数据库进行一些数据库迁移。

当我在 Docker 中本地运行容器时(使用同一网络中的 MySQL 容器),该工具按预期运行。如果我使用容器创建一个 Pod 并将命令参数设置为指向mysql在同一命名空间中运行的服务,它也可以。

但是,如果我将该 Pod 规范转换为作业,则创建的容器由于某种原因无法再连接到 MySQL 服务。

该容器基于amazoncorretto:8-al2-jdkJAR 并将其复制到/opt/.

MySQL DB 可通过mysql集群中的服务获得:

这些是 Pod 的规格:

将容器作为 Pod 运行:

这些是作业的规格:

将容器作为作业运行:

我没有看到正在创建的容器有任何显着差异。我唯一能想到的是某种字符编码问题,但我不明白为什么这只发生在为 Job 创建的 Pod 而不是直接创建的 Pod 中。

提前感谢您对此问题的任何帮助!

编辑:我忘了提到 Istio 在命名空间上处于活动状态,结果证明是导致问题的原因。

0 投票
3 回答
9113 浏览

kubernetes - Kubernetes 从 Cronjob 创建作业不起作用

我有一个具有以下版本的 Kubernetes 集群:

我的 Kubernetes 集群中有一个 cron 作业。

Kubernetes 集群识别 cron 作业的 api 资源。

我正在尝试为此创建手动作业,但面临此错误。

有人可以帮忙吗?

0 投票
2 回答
1462 浏览

kubernetes - Kubernetes 作业和部署之间有什么区别

我看到 KubernetesJob提供Deployment了非常相似的配置。两者都可以部署一个或多个具有特定配置的 Pod。所以我对这些有几个疑问:

  • &中的吊舱规格是否.spec.template不同?JobDeployment
  • Job's completions& Deployment's有什么区别replicas
  • 如果命令在Deployment的唯一容器中运行并完成(没有服务器或守护进程容器),则 pod 将终止。这同样适用于 a Job。那么这两种资源中的 pod 生命周期有何不同呢?
0 投票
2 回答
212 浏览

kubernetes - Kubernetes“索引作业”不起作用

我已经使用 minukube 制作了我的集群。

据我所知,索引作业功能是在 kubernetes 版本1.21中添加的。

但是当我完成工作时,似乎没有 $JOB_COMPLETION_INDEX 环境变量。

这是我的 yaml

但正如我之前提到的,看起来这份工作不是索引工作

下面是我的豆荚的日志(由我的工作控制)

$JOB_COMPLETION_INDEX环境变量似乎为空。

我将跳过它以使其简短,但是当我直接访问容器时,也没有 $JOB_COMPLETION_INDEX。

以下是kubectl describe job.batch/my-job 命令的结果

没有注释。作为文档batch.kubernetes.io/job-completion-index注释必须存在。

我的版本高于 kubernetes 1.21,其中引入了 Indexed-Job 功能。

我应该怎么办?

0 投票
1 回答
52 浏览

kubernetes - 当作业控制的 pod 由于内存不足错误而失败时,如何最好地在重新启动 pod 之前增加请求的内存?

我想知道是否有任何方法可以启动另一个作业,如果由作业控制的 pod 失败,这将在 pod 重新启动之前更新控制该 pod 的内存请求值的作业,可能会加倍?

我已经查找了 PreStop 容器生活方式挂钩、操作员等。现在最好的解决方案似乎是一个自定义控制器,它运行在所有作业上,如果它们处于重新启动状态或类似的状态并且具有特定标签,那么它会加倍它们内存请求。

0 投票
1 回答
129 浏览

kubernetes - 即使 Job 失败也不要删除 Pod

我必须处理存储在工作队列中的任务,并且我正在启动这种工作来完成它:

问题是,如果 Job 管理的 Pod 中的一个失败,Job 会在所有其他 Pod 完成之前将其终止。就我而言,我希望将作业标记为失败,但我不希望其 Pod 被终止。我希望他们继续运行并完成处理他们在队列中挑选的项目。

请问有办法吗?

0 投票
2 回答
88 浏览

kubernetes - 如何从本地文件系统中的图像启动 kubernetes 作业?

似乎是一件显而易见的事情。在其他类似系统中很常见。但我没有看到如何在 Kubernetes 中做到这一点。我错过了什么?

0 投票
1 回答
86 浏览

kubernetes - 控制作业删除

我们的集群中有一个 cronjob 监控。如果 24 小时内没有 pod 出现,说明 cronjob 没有运行,我们需要提醒。但有时,由于一些垃圾收集,pod 被删除(但作业成功完成)。如何保留所有 pod 并避免垃圾收集?我知道终结器,但看起来它在这种情况下不起作用。

0 投票
1 回答
34 浏览

kubernetes - Kubernetes Pod env 用一个单引号变成了 Kubernetes 创建后的三个

这个 Kubernetes Pod 对象有一个 Env,它的值是一个带单引号的字符串'"0.0.0.0/0"'

由 Kubernetes client-go(如上)或 Controller-runtime 创建后,一个单引号字符串变成了三个单引号。

这是 Yaml 文件中的 Kubernetes 作业清单。

如果我创建它kubectl apply -f,它会按预期工作。

如何使 client-go 或 controller-runtime 不生成三个单引号?只需保留单引号的原始数量即可。