use*_*835 6 yaml google-cloud-platform kubernetes google-kubernetes-engine
我有一个 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
Run Code Online (Sandbox Code Playgroud)
如何确保在创建新 Pod 之前终止较早的 Pod?
Mar*_*ark 10
如果我正确理解你的情况(早期的 Pod 应该在创建新的 Pod 之前终止)。
1 . 请改用spec.jobTemplate.spec.activeDeadlineSeconds。
通过设置此参数,一旦作业达到activeDeadlineSeconds - 所有正在运行的 Pod 将被终止,并且作业状态将变为类型:失败,原因为 DeadlineExceeded。
例子:
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
Run Code Online (Sandbox Code Playgroud)
2 . 第二种解决方案是设置concurrencyPolicy。并将当前正在运行的作业替换为新作业。
例子:
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
Run Code Online (Sandbox Code Playgroud)
资源:
您是否尝试将 concurrencyPolicy 设置为 Replace?禁止意味着如果前一个作业尚未完成,则跳过新作业运行。
\n\nhttps://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#concurrency-policy
\n\n允许(默认):cron 作业允许同时运行作业
\n\nForbid:cron作业不允许并发运行;如果到了运行新作业的时间,并且上一个作业运行尚未完成,则 cron 作业将跳过新作业运行
\n\n替换:如果到了运行新作业的时间,并且之前的作业运行尚未完成,则 cron 作业将用新的作业运行替换当前正在运行的作业运行
\n| 归档时间: |
|
| 查看次数: |
10354 次 |
| 最近记录: |