You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一文件中配置两个Kubernetes CronJob

在同一Kubernetes配置文件中添加多个CronJob的正确配置

你当前的配置存在几个问题,无法正常使用:

  • 两个CronJob的metadata.name完全重复,Kubernetes同一命名空间下不允许同名资源存在
  • YAML格式错误:env的-name缺少空格,commande拼写错误(应为command),command缩进层级错误,schedule字段的注释写法不符合YAML规范,容器定义缺少必填的name字段
  • 多资源的YAML文件需要用---分隔每个资源对象

以下是修正并添加第二个CronJob后的正确配置:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: cronjob-ONESHOP-5180
  namespace: bose-production
spec:
  # 每天早上7点执行任务
  schedule: "0 7 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: drush-job
            env:
            # 正确的环境变量格式,示例设置命名空间变量
            - name: NAMESPACE
              value: bose-production
            # 执行Drush命令
            command: ["drush", "auto_depublication:terminaux"]
            args:
              - /bin/sh
              - '-c'
              - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure
---
# 第二个CronJob,名称必须唯一
apiVersion: batch/v1
kind: CronJob
metadata:
  name: cronjob-ONESHOP-ANOTHER-TASK
  namespace: bose-production
spec:
  # 示例:每天早上8点执行另一个任务
  schedule: "0 8 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: another-drush-job
            env:
            - name: NAMESPACE
              value: bose-production
            command: ["drush", "another:drush-command"]
            args:
              - /bin/sh
              - '-c'
              - date; echo Hello from the second CronJob
          restartPolicy: OnFailure

关键注意事项:

  • 同一命名空间下的CronJob名称必须唯一,第二个CronJob的名称可根据实际需求修改
  • YAML对缩进要求严格,每个层级需对齐
  • env字段要遵循- name: 变量名+value: 变量值的键值对格式
  • command字段拼写要正确,且需放在容器定义的正确层级下
  • 多资源配置必须用---分隔每个资源对象

内容的提问来源于stack exchange,提问作者mamadou ghandour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:08:24