一个或多个脱机时在一组特定的计算机上运行cronjobs

时间:2018-12-13 21:13:59

标签: kubernetes

对不起,K8s的新手...

我正在使用k8s cronjob将etcd快照推送到我们的s3对象存储中。每个群集有7个etcd节点,我将作业配置为以7的并行度运行7次以完成操作。使用容差和节点选择器,将作用域限制为我的etcd节点。

apiVersion: batch/v1beta1 kind: CronJob metadata: name: etcd-backup-to-s3 namespace: backups spec: concurrencyPolicy: Allow failedJobsHistoryLimit: 10 jobTemplate: metadata: creationTimestamp: null spec: activeDeadlineSeconds: 300 backoffLimit: 3 completions: 7 parallelism: 7 <SNIP>

有没有一种方法可以配置它来处理一个或多个etcd节点可能处于脱机状态?

ie:动态计算“完成”所需值的任何方式,以便在运行时可以确定当时有多少etcd节点在线。

还是我应该采用一种完全不同的方式?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果在连接超时的情况下作业中的脚本可以成功退出,或者在etcd探测(ping)失败的情况下可以替代退出,则即使某些etcd实例已关闭,cronjob中的所有作业也将完成。

例如,仅当探测阶段成功但备份阶段失败时,您才能使作业失败。