问题标签 [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.
kubernetes - 如何通过查询 DNS srv 记录获取 kubernetes pod 的 IP 地址?
我正在尝试创建一个 kubernetes 作业,我将在其中运行“dig srv”查询,以找出在同一集群上运行的任何特定服务的所有 pod 的 IP 地址。
这是可以实现的吗?
我想详细说明问题陈述。集群上已经运行了一些服务。要求是有一个可以接受服务名称并列出属于该服务的所有 pod 的 IP 地址的工具。
我可以通过使用 kubectl 命令以及选择器和 jq 工具来做到这一点。但是由于某些原因,我不允许在这个环境中运行 kubectl 命令。
我想使用dig srv
查询来解析提供的服务名称的 pod IP。
kubernetes-helm - 如果未找到 PVC Claim,如何退出 helm hook?
我有一个升级后的 helm hook 作业,它挂载 2 个 PV 声明并将数据从一个 PVC 复制到另一个。但是,在某些情况下,可能不存在特定的 PVC。当我运行这个钩子时,作业被生成,但处于“待处理”状态,即使发现 PVC 丢失。有什么方法可以将这项工作标记为失败并继续前进?
describe 命令表明
我想做以下两件事之一:1.动态检测 PVC 不存在 2.退出作业,使其具有相同的含义..
kubernetes - 如何修复:K8 作业已停止并且不再计划
我不得不通过杀死 pod 来停止 k8 中的作业,现在该作业不再安排。
错误 :
警告 FailedNeedsStart 5m34s (x7883 over 29h) cronjob-controller 无法确定是否需要启动作业:错过的开始时间太多 (> 100)。设置或减少 .spec.startingDeadlineSeconds 或检查时钟偏差。
kubernetes - 如何正确更新作业状态
据我所知,当大多数人想知道一个Kubernetes
(Spark
甚至)Job
是否完成时,他们会在某处启动某种循环,以定期检查是否Job
完成了相应的API
.
现在,我正在使用( ) 运算符(在下面)Kubernetes
在后台执行此操作:disown
&
bash
Python
所以......我实际上有两个(相关的)问题:
shell
除了操作员之外,还有没有更好的方法在后台执行此&
操作?- 我认为最好的选项实际上是
cURL
从内部使用Job
来更新Local Server API
与Kubernetes
.- 但是,我不知道如何
cURL
从Job
. 是否可以? - 我想您将不得不在某个地方公开端口,但是在哪里?它真的支持吗?你能创建一个
Kubernetes
Service
来管理端口和连接吗?
- 但是,我不知道如何
docker - 通过swagger运行容器部署执行后如何更新作业的kubernetes作业状态?
deployment.yaml
我已经通过使用 minikube的文件部署了我的前端应用程序swagger-ui
。该应用程序只接受 json 查询并在 minikube 上启动作业,该作业运行和终止相关容器。目前我已经在我的 minikube 集群上构建了 1 个 docker 镜像,该集群在作业开始后开始下载卫星图像。现在,每当我将 json 查询传递给 swagger-ui 时,它都会给我以下响应,其中作业状态为PENDING
:
工作观察者
在 minikuber 方面,作业会在一段时间后开始和终止,但在 swagger 方面,作业的状态永远不会改变。但是,当我尝试运行GET
查询以列出所有作业时,我会看到已完成的作业。我的问题是我如何在工作完成后更新状态或通知用户?.
kubernetes - 在 Pod 初始化后在作业中使用 initcontainers 做一些事情
我目前正在尝试在我刚刚加入的项目中在 Kubernetes 中创建工作。
该作业应该等到另外 2 个 pod 启动并运行,然后运行.sh脚本为应用程序中的测试人员创建一些数据。
我发现我应该使用initContainers。但是,有一点我不明白。
为什么我应该在作业描述.yaml文件的initContainers下的env标签下包含一些环境值?
我以为我只是在等待 Pod 被初始化,而不是再次创建它们。我错过了什么吗?
提前致谢。
kubernetes - 关于分解由托管在 kubernetes 中的作业和服务组成的 IOT 应用程序的建议,以实现水平扩展
我有一个 IOT 应用程序,它的架构如下:-
有些工厂有自己的成套设备。
现在整个管道部署在 Kubernetes 中,由以下单元组成:-
- 每 x 秒唤醒一次的作业,从所有工厂读取数据,将数据推送到 mqtt 代理。
- 一个 MQTT 代理。
- 一种订阅服务,它接收来自所有工厂的数据并将其推送到时间序列数据库。
- 作业以 5 分钟、15 分钟、1 小时、4 小时、1 天的间隔运行,并对所有项目的数据进行下采样,并将其推送到单独的下采样表中。
- 每天运行的作业以检查数据中是否存在漏洞/间隙,并在可能的情况下尝试填充它。
现在这适用于少数植物,但是当植物数量增加时,使用单个服务/作业执行数据检索、推送、下采样变得困难,因为它变得过多的内存密集型并且在多个地方阻塞。作为一种临时修复扩展,它在一定程度上垂直解决了这个问题,但在这种情况下,我需要将所有 pod 放在一台机器中,我正在垂直扩展并且垂直扩展多个节点非常昂贵。因此,我计划以某种方式分解系统,以便我可以水平扩展,并且我正在寻找实现这一目标的可能方法的建议。
kubernetes - Kubernetes - 在 pod 状态就绪后运行作业
我基本上是在寻找类似于初始化容器的机制,但需要注意的是,我希望它在 pod 准备好后运行(例如响应 readinessProbe)。是否有任何钩子可以应用于 readinessProbe,以便它可以在第一次成功探测后触发作业?
提前致谢
python-3.x - 用于为 Database Conatiner 创建数据库脚本的 Kubernetes helm
我正在开发用于部署 Python 应用程序的 Kubernetes helm。在 python 应用程序中,我有一个必须连接的数据库。
我想运行将创建数据库、创建用户、创建表或任何更改数据库列和任何 sql 脚本的数据库脚本。我在想这可以作为 initContainer 运行,但不推荐这样做,因为即使没有要运行的 db 脚本,它也会每次都运行。
以下是我正在寻找的解决方案:创建 Kubernetes 作业以运行将连接到 postgres db 并从文件中运行脚本的脚本。在 Kunernetes Job 中有没有办法连接到 Postgres 服务并运行 sql 脚本?
请建议任何在 kubernetes 中运行 sql 脚本的好方法,我们也可以使用 pod 进行监控。