问题标签 [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.

0 投票
1 回答
129 浏览

cron - 在 OpenShift 在线创建 Cron 作业会导致:admission webhook "validate.cron.create" denied the request: Prohibited resource for this cluster

我正在学习 Openshift Online,我尝试从 UI 或 CLI 创建一个 cron 作业,都导致以下错误:

来自服务器的错误:admission webhook “validate.cron.create”拒绝了请求:此集群的禁止资源。

我检查了该帐户的权限,它在 cronjobs 上具有 CRUD 的管理员权限。

我使用与文档相同的示例: https ://docs.openshift.com/container-platform/3.5/dev_guide/cron_jobs.html

0 投票
1 回答
63 浏览

kubernetes - 使用“kubectl”创建资源(cronjob)样板

我正在学习 k8s,我很想知道我们如何为cronjob创建样板。

我知道它曾经是followwoing。

kubectl run mycron --schedule "1 * * * *" --image nginx -o yaml --dry-run.

即使它仍然输出样板,但它说如下。

kubectl run --generator=cronjob/v1beta1 已弃用,将在未来版本中删除。请改用 kubectl create。

但是我找不到如何使用kubectl create. 有任何想法吗?

0 投票
1 回答
1236 浏览

kubernetes - 有没有办法通过字符串值过滤指标,其中一部分来自普罗米修斯查询中另一个查询的结果?

我想在最近的 cronjob 作业失败时收到警报。expr kube_job_status_failed{job_name=~"cronjobname.*"}==1大部分时间都有效。但是如果一个作业失败并保留,即使下一个作业成功,我仍然会收到警报,因为prometheus中有两条记录,一条是失败记录,另一条是成功记录。

我发现我可以从中获取最新的作业时间戳kube_cronjob_status_last_schedule_time{cronjob="cronjobname"},然后用于kube_job_status_failed{job_name="cronjobname-TIMESTAMP"}查询最后的作业状态。

我想知道我们是否有办法在一个查询中连接第一个查询jobname的结果并在第二个查询中过滤?喜欢 kube_job_status_failed{job_name=string_concatenate("cronjobname-", kube_cronjob_status_last_schedule_time{cronjob="cronjobname"})}

0 投票
1 回答
1126 浏览

kubernetes - 是否可以将 Kubernetes Cronjob status.lastScheduleTime 时间戳传递给计划作业的容器?

我有一个 cronjob 应该处理自上次操作以来发生的事件,因为我使用 DB 来保存这个时间戳,我的问题是是否可以将 Kubernetes status.lastScheduleTime作为环境变量直接传递给 cronjob 对象?

0 投票
1 回答
582 浏览

php - 使用 id 运行 cron 作业

嗨,美好的一天,我正在使用 cron 作业执行任务,这是我的 cronjob 脚本就像 cronjob.php?cron=1 但该链接不起作用我收到电子邮件,如 cron 无法打开输入文件为什么 cron 不获取 id

0 投票
1 回答
2823 浏览

kubernetes - 将动态格式化的日期时间传递给 K8s 容器配置

我有一个CronJob在 Kubernetes 的容器中运行一个进程。

此过程采用由 a--since--until标志定义的时间窗口。此时间窗口需要在容器启动时间(触发 cron 时)定义,并且是当前时间的函数。运行此过程的示例是:

因此,对于上面的示例,我希望时间窗口从 1 小时前到未来 1 小时。Kubernetes 中有没有办法将格式化的日期时间作为命令参数传递给进程?

我正在尝试做的一个例子是以下配置:

执行此操作时,文字字符串"$(date -v -1H +"%Y-%m-%dT%H:%M:%SZ")"将作为--since标志传入。

这样的事情可能吗?如果是这样,我会怎么做?

0 投票
0 回答
638 浏览

django - 重复使用部署模板运行 kubectl cronjob

我有一个带有 2 个容器的 pod:一个 django 网络服务器和一个云 sql 代理。

我想每天运行一个 cronjob(一些 django manage.py 命令)。理想情况下,我希望通过复制已经在其中运行的网络服务器,在我正在运行的一个 pod 中创建一个新容器。

  1. 找到吊舱 A
  2. 从 pod A 复制 django 容器
  3. 在 pod A 中启动新的 django 容器
  4. 在 pod A 的新容器中执行命令
  5. 关闭 pod A 的新容器

据我了解,执行 kubernetes CronJob 将创建一个自己的新 pod。这意味着我需要复制所有内容,包括卷和代理容器。我尝试手动执行此操作(通过将部署中的所有 pod conf 复制粘贴到 CronJob conf 中)

但是 cloud_sql 代理无法在 Cronjob conf 中连接:

这些错误真的很令人困惑,所以我坚持这个测试。

可能有人知道让 cronjob 运行重用现有容器的干净方法吗?

0 投票
2 回答
337 浏览

kubernetes - betav1 的 Kubernetes CronJob 稳定版何时发布

我正在使用 Kubernetes cron 作业进行一些调度,我可以看到 kubernetes cron 作业仍处于 beta 版本我正在使用 Kubernetes 版本:v1.16.0 请建议我使用 v1beta1 版本进行生产可以吗?

0 投票
1 回答
249 浏览

mysql - 无法在 GCP 存储中创建 MySQL 数据库备份

我们使用 mysql 数据库在 k8s(GCP) 中部署一个 laravel 项目。现在我想在 cronjob 的帮助下不时备份这个数据库,我关注了一篇文章 ,但我无法创建备份文件。但是,根据文章,我们需要在GCP中创建存储桶和服务帐户

它工作正常,但存储桶中没有备份文件。

cronjob.yaml 文件

apiVersion: batch/v1beta1 kind: CronJob metadata: name: backup-cronjob spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: backup-container image: gcr.io/thereport/abcd env: - name: DB_NAME valueFrom: configMapKeyRef: name: backup-configmap key: db - name: GCS_BUCKET valueFrom: configMapKeyRef: name: backup-configmap key: gcs-bucket - name: DB_HOST valueFrom: secretKeyRef: name: backup key: db_host - name: DB_USER valueFrom: secretKeyRef: name: backup key: username - name: DB_PASS valueFrom: secretKeyRef: name: backup key: password - name: GCS_SA valueFrom: secretKeyRef: name: backup key: thereport-541be75e66dd.json args: - /bin/bash - -c - mysqldump --u root --p"root" homestead > trydata.sql; gcloud config set project thereport; gcloud auth activate-service-account --key-file backup; gsutil cp /trydata.sql gs://backup-buck

0 投票
2 回答
680 浏览

kubernetes - 一旦最近的作业通过,如何清理失败的 CronJob 生成的作业

我正在使用 Kubernetes CronJobs 运行管理任务,并且当使用kube-state-metrics生成的作业之一失败时,Prometheus 会发出警报:

我想拥有它,以便当最近的作业通过时,清理失败的作业,以便警报停止触发。

CronJob 资源本身是否支持这种行为?

解决方法是让作业清理失败的作业作为最后一步,或者创建一个更复杂的警报规则以将最近的作业作为最终状态,但它们不是 IMO 最好的解决方案。

Kubernetes 版本:v1.15.1