如何在同一文件中配置两个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
相关产品推荐
相关产品推荐

