Kubernetes Cron Job 在创建下一个计划之前终止 Pod

2023-12-24

我有一个 Kubernetes Cron Job 每 5 分钟运行一次计划任务。我想确保在下一个计划时间创建新的 pod 时,较早的 pod 应该已终止。较早的 Pod 应在创建新 Pod 之前终止。 Kubernetes 可以在创建新的 pod 之前终止较早的 pod 吗?

我的yaml是:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: my-scheduled
spec:
  schedule: "*/5 * * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cmm-callout
            env:
              - name: SCHEDULED
                value: "true"
            livenessProbe:
              httpGet:
                path: /myapp/status
                port: 7070
                scheme: HTTPS
              initialDelaySeconds: 120
              timeoutSeconds: 30
              periodSeconds: 120                
            image: gcr.io/projectid/folder/my-app:9.0.8000.34
          restartPolicy: Never

如何确保在创建新 Pod 之前终止较早的 Pod?


如果我正确理解你的情况(早期的 Pod 应该在创建新的 Pod 之前终止)。

1。请用规格.jobTemplate.规格.activeDeadlineSeconds反而。

一旦Job到达,通过设置此参数活动截止时间- 所有正在运行的 Pod 将被终止,作业状态将变为类型:失败,原因为 DeadlineExceeded。

example:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/5 * * * *"
  jobTemplate:
    spec:
      activeDeadlineSeconds: 60
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster && sleep 420
          restartPolicy: Never

2。第二种解决方案是设置并发策略。并将当前正在运行的作业替换为新作业。

example:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/2 * * * *"
  concurrencyPolicy: Replace
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster && sleep 420
          restartPolicy: Never

资源:

  • 终止工作 https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#job-termination-and-cleanup

  • 并发策略 https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#concurrency-policy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes Cron Job 在创建下一个计划之前终止 Pod 的相关文章

随机推荐