问题标签 [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.
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 信息,但它没有创建任何工作或吊舱。
有谁知道,为什么422
最后有代码?
java - 作为 Pod 工作的 Java 容器不在 Job 中工作
我正在尝试使用包含 Java 工具的容器在 Kubernetes 作业中对 MySQL 数据库进行一些数据库迁移。
当我在 Docker 中本地运行容器时(使用同一网络中的 MySQL 容器),该工具按预期运行。如果我使用容器创建一个 Pod 并将命令参数设置为指向mysql
在同一命名空间中运行的服务,它也可以。
但是,如果我将该 Pod 规范转换为作业,则创建的容器由于某种原因无法再连接到 MySQL 服务。
该容器基于amazoncorretto:8-al2-jdk
JAR 并将其复制到/opt/
.
MySQL DB 可通过mysql
集群中的服务获得:
这些是 Pod 的规格:
将容器作为 Pod 运行:
这些是作业的规格:
将容器作为作业运行:
我没有看到正在创建的容器有任何显着差异。我唯一能想到的是某种字符编码问题,但我不明白为什么这只发生在为 Job 创建的 Pod 而不是直接创建的 Pod 中。
提前感谢您对此问题的任何帮助!
编辑:我忘了提到 Istio 在命名空间上处于活动状态,结果证明是导致问题的原因。
kubernetes - Kubernetes 从 Cronjob 创建作业不起作用
我有一个具有以下版本的 Kubernetes 集群:
我的 Kubernetes 集群中有一个 cron 作业。
Kubernetes 集群识别 cron 作业的 api 资源。
我正在尝试为此创建手动作业,但面临此错误。
有人可以帮忙吗?
kubernetes - Kubernetes 作业和部署之间有什么区别
我看到 KubernetesJob
提供Deployment
了非常相似的配置。两者都可以部署一个或多个具有特定配置的 Pod。所以我对这些有几个疑问:
- &中的吊舱规格是否
.spec.template
不同?Job
Deployment
Job
'scompletions
&Deployment
's有什么区别replicas
?- 如果命令在
Deployment
的唯一容器中运行并完成(没有服务器或守护进程容器),则 pod 将终止。这同样适用于 aJob
。那么这两种资源中的 pod 生命周期有何不同呢?
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 功能。
我应该怎么办?
kubernetes - 当作业控制的 pod 由于内存不足错误而失败时,如何最好地在重新启动 pod 之前增加请求的内存?
我想知道是否有任何方法可以启动另一个作业,如果由作业控制的 pod 失败,这将在 pod 重新启动之前更新控制该 pod 的内存请求值的作业,可能会加倍?
我已经查找了 PreStop 容器生活方式挂钩、操作员等。现在最好的解决方案似乎是一个自定义控制器,它运行在所有作业上,如果它们处于重新启动状态或类似的状态并且具有特定标签,那么它会加倍它们内存请求。
kubernetes - 即使 Job 失败也不要删除 Pod
我必须处理存储在工作队列中的任务,并且我正在启动这种工作来完成它:
问题是,如果 Job 管理的 Pod 中的一个失败,Job 会在所有其他 Pod 完成之前将其终止。就我而言,我希望将作业标记为失败,但我不希望其 Pod 被终止。我希望他们继续运行并完成处理他们在队列中挑选的项目。
请问有办法吗?
kubernetes - 如何从本地文件系统中的图像启动 kubernetes 作业?
似乎是一件显而易见的事情。在其他类似系统中很常见。但我没有看到如何在 Kubernetes 中做到这一点。我错过了什么?
kubernetes - 控制作业删除
我们的集群中有一个 cronjob 监控。如果 24 小时内没有 pod 出现,说明 cronjob 没有运行,我们需要提醒。但有时,由于一些垃圾收集,pod 被删除(但作业成功完成)。如何保留所有 pod 并避免垃圾收集?我知道终结器,但看起来它在这种情况下不起作用。
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 不生成三个单引号?只需保留单引号的原始数量即可。