节点关闭后自动重新启动Kubernetes作业

xdnvmnnf  于 2023-03-12  发布在  Kubernetes
关注(0)|答案(1)|浏览(144)

我们正在GKE上运行一个日常cronjob。此作业在点节点上执行。容器遵守SIGTERM并正常关闭。但是,此作业随后被标记为成功且未重新启动。如何确保此作业在其他节点上重新启动?
我读过https://kubernetes.io/docs/concepts/architecture/nodes/#graceful-node-shutdown和https://kubernetes.io/docs/concepts/workloads/controllers/job/#handling-pod-and-container-failures,但是我在那里没有看到任何帮助我的东西。

7nbnzgx9

7nbnzgx91#

默认情况下,kubernetes中的cron作业不会在节点关闭后重新调度。但是,您可以将作业配置为使用onFailurerestartPolicy,以确保在节点关闭后重新调度作业。
您需要在规范部分提及restartPolicy,如下所示

apiVersion: batch/v1
kind: CronJob
metadata:
 name: myjob
spec:
 schedule: "* * * * *"
 jobTemplate:
  spec:
   template:
    spec:
     containers:
       - name: myjob
         image: nginx
         imagePullPolicy: IfNotPresent
     restartPolicy: onFailure

通过使用此restartPolicy,如果节点关闭或运行cron作业的Pod因任何原因终止,kubernetes调度程序将自动重新调度cron作业以运行正常的节点。

**注意:**务必确保cronjob所需的资源在节点中可用。

相关问题