问题标签 [kubernetes-cronjob]
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 - Kubernetes 中的 Cron 作业 - 连接到现有 Pod,执行脚本
我确定我遗漏了一些明显的东西。我查看了 Kubernetes 上的 ScheduledJobs / CronJobs 的文档,但我找不到按计划执行以下操作的方法:
- 连接到现有 Pod
- 执行脚本
- 断开
我有其他方法可以做到这一点,但他们感觉不对。
安排一个 cron 任务: kubectl exec -it $(kubectl get pods --selector=some-selector | head -1) /path/to/script
创建一个部署,其中包含一个包含应用程序的“Cron Pod”,以及许多只是应用程序的“非 Cron Pod”。Cron Pod 将使用不同的映像(一个计划了 cron 任务的映像)。
如果可能的话,我更喜欢使用 Kubernetes ScheduledJobs 来防止同一个 Job 一次运行多次,并且因为它让我觉得这是一种更合适的方式。
ScheduledJobs / CronJobs 有没有办法做到这一点?
kubernetes - 如何自动删除由 CronJob 创建的已完成 Kubernetes 作业?
除了制作 CronJob 来清理已完成的作业之外,还有没有办法自动删除已完成的作业?
K8s作业文档指出,已完成作业的预期行为是让它们保持已完成状态,直到手动删除。因为我每天通过 CronJobs 运行数千个作业,我不想保留已完成的作业。
cron - 从 Kubernetes Cron Job 调用端点
我有一个在 Kubernetes 集群的 Docker 容器中运行的 webapp。该应用程序有一个我想定期调用的端点。应用程序在多个节点/Pod 上运行,重要的是只有一个节点执行端点发起的任务。我查看了 Kubernetes Cron Jobs,但没有找到任何关于从 Kubernetes Cron Job 调用端点的文档。有人对解决这个问题有任何建议吗?在只有一个节点执行任务至关重要的集群中,您如何处理调度?
kubernetes - 更改 Kubernetes CronJob 上的 LAST SCHEDULE 日期格式
我正在阅读文档,不清楚如何更改LAST-SCHEDULE
日期列的格式。对我来说,以小时( 4h )返回一个近似值:
但在文档中格式不同,显示日期、时间和时区:
如何更改格式LAST-SCHEDULE
以返回有关上次计划日期的更多信息?
客户结果kubectl version
:
kubernetes - Kubernetes Cronjob 中的环境变量
我有一个 nodejs 应用程序,每个月都会运行并从外部数据库中获取数据。它有一些环境变量。我可以在 Kubernetes 中将其作为 Cronjob 运行吗?是否可以定义 env 变量并从 cronjob 中的 secretfile 获取 env 变量?
kubernetes - 是否有 kubernetes cronjob 类型允许单个容器映像的多个计划?
如果一个映像具有许多不同的可执行文件,那么在同一个 kubernetes 部署中是否可能有多个具有不同命令的 cron 条目在不同时间运行。
例如,对于一些名为“jolly-roger”的单个容器映像,我想安排以下 crontab,而不必在不同的存储库中管理 4 个单独的 kubernetes 应用程序。
php - Cpanel 中的 Cron 作业 - 时区问题
我有一个 php 文件,它在浏览器和 cron 作业部分都可以正常工作。我唯一面临的是我要运行该 cron 的时区未与服务器时区同步。
我想每天早上 7 点在印度时区运行 cron 作业。但是 cron 没有在上午 7 点运行,而是在其他时间运行,无法识别,因为它每次运行时都会发生变化。我正在使用 Godaddy 托管服务。任何帮助表示赞赏。
kubernetes - Kubernetes cronjobs `startingDeadlineSeconds` 到底是什么意思?
在 Kubernetes cronjobs中,限制部分中指出
如果 CronJob 控制器在从 CronJob 开始时间到开始时间加上startingDeadlineSeconds 之前的一段时间内未运行或中断,或者如果跨度涵盖多个开始时间并且concurrencyPolicy 不允许并发,则作业可能无法运行。
我从中了解到的是,如果startingDeadlineSeconds
设置为10
并且 cronjob 在其预定时间由于某种原因无法启动,那么只要这些10
秒还没有过去,它仍然可以尝试重新启动,但是,之后秒,10
它肯定不会启动,这是正确的吗?
另外,如果我concurrencyPolicy
设置为Forbid
,如果 cronjob 尝试被调度,K8s 是否会将其视为失败,而此时已经有一个 cronjob 正在运行?
kubernetes - 启用自动缩放后,GKE 不会缩放到/从 0
我想在我的 GKE 上运行 CronJob,以便每天执行批处理操作。理想的情况是我的集群在作业未运行时扩展到 0 个节点,并在每次满足计划时动态扩展到 1 个节点并在其上运行作业。
我首先尝试通过使用在kubernetes文档中找到的一个简单的 CronJob 来实现这一点,它只打印当前时间并终止。
我首先使用以下命令创建了一个集群:
然后,我创建了一个具有以下描述的 CronJob:
该作业计划每小时运行一次,并在终止前打印当前时间。
首先,我想创建具有 0 个节点的集群,但设置--num-nodes 0
会导致错误。为什么会这样?请注意,我可以在创建集群后手动将集群缩减到 0 个节点。
其次,如果我的集群有 0 个节点,则不会安排作业,因为集群不会自动扩展到 1 个节点,而是会出现以下错误:
无法调度 pod:没有可用于调度 pod 的节点。
第三,如果我的集群有 1 个节点,作业会正常运行,但在那之后,集群不会缩减到 0 个节点,而是保留 1 个节点。我让我的集群运行了两个连续的作业,并且在两者之间没有缩小。我认为一小时应该足以让集群这样做。
我错过了什么?
编辑:我已经开始工作并在此处详细说明了我的解决方案。