如何通过Helm命令一次性安装多个CronJob?
解决Helm单命令安装多个CronJob的问题
问题根源
你当前的YAML文件里三个CronJob没有用**YAML文档分隔符(---)**分隔,Helm只会解析文件中的第一个YAML资源,所以仅安装了job-1。
可行解决方案
方案1:在同一文件中拆分多资源
修改你的CronJob配置文件,在每个CronJob资源之间添加---,让Helm识别出这是三个独立资源:
apiVersion: batch/v1 kind: CronJob metadata: name: job-1 namespace: default ... --- apiVersion: batch/v1 kind: CronJob metadata: name: job-2 namespace: default ... --- apiVersion: batch/v1 kind: CronJob metadata: name: job-3 namespace: default ...
把修改后的文件放到Helm Chart的templates目录下,再执行helm install $name $chart,就能一次性安装三个CronJob。
方案2:拆分到独立模板文件(更推荐)
把每个CronJob单独存放在templates目录下的独立文件中:
templates/job-1.yaml:仅包含job-1的CronJob配置templates/job-2.yaml:仅包含job-2的CronJob配置templates/job-3.yaml:仅包含job-3的CronJob配置
这种方式更利于后续维护,Helm会自动遍历templates目录下的所有文件,执行helm install时会自动创建所有资源。
验证结果
执行安装命令后,运行以下命令查看所有CronJob:
kubectl get cronjobs -n default
此时就能看到job-1、job-2、job-3三个任务了。
内容的提问来源于stack exchange,提问作者Pastor Emmanuel
相关产品推荐
相关产品推荐

