gpt4 book ai didi

kubernetes - 如何将容器作为 Kubernetes 作业按顺序运行?

转载 作者:行者123 更新时间:2023-12-03 11:52:55 27 4
gpt4 key购买 nike

我正在尝试用 Kubernetes 作业替换我的旧作业调度程序,并想知道如何将顺序作业编写为 Kubernetes 作业。

首先,我编写了以下脚本来执行 job1job2按照书面顺序,但它没有按我预期的那样工作。

apiVersion: batch/v1
kind: Job
metadata:
name: sequential
spec:
activeDeadlineSeconds: 100
template:
metadata:
name: sequential_jobs
spec:
containers:
- name: job1
image: image1
- name: job2
image: image2
restartPolicy: Never

上述作业似乎运行 job1job2在平行下。
有什么好办法跑 job1job2按书面顺序?

附加。

我最近发现 https://github.com/argoproj/argo非常适合我的用例。

最佳答案

经过几次尝试,我做到了这一点,解决了基本问题(类似于 OP 发布的内容)。此配置确保 job-1之前完成 job-2开始。如 job-1失败,job-2容器未启动。我仍然需要处理重试和失败处理,但基础工作是有效的。希望这会帮助其他人:

apiVersion: v1
kind: Pod
metadata:
name: sequential-job
spec:
initContainers:
- name: job-1
image: busybox
# runs for 15 seconds; echoes job name and timestamp
command: ['sh', '-c', 'for i in 1 2 3; do echo "job-1 `date`" && sleep 5s; done;']
- name: job-2
image: busybox
# runs for 15 seconds; echoes job name and timestamp
command: ['sh', '-c', 'for i in 1 2 3; do echo "job-2 `date`" && sleep 5s; done;']
# I don't really need the 'containers', but syntax requires
# it so, I'm using it as a place where I can report the
# completion status
containers:
- name: job-done
image: busybox
command: ['sh', '-c', 'echo "job-1 and job-2 completed"']
restartPolicy: Never

更新

与上述相同的配置也适用于作业规范:
apiVersion: batch/v1
kind: Job
metadata:
name: sequential-jobs
spec:
template:
metadata:
name: sequential-job
spec:
initContainers:
- name: job-1
image: busybox
command: ['sh', '-c', 'for i in 1 2 3; do echo "job-1 `date`" && sleep 5s; done;']
- name: job-2
image: busybox
command: ['sh', '-c', 'for i in 1 2 3; do echo "job-2 `date`" && sleep 5s; done;']
containers:
- name: job-done
image: busybox
command: ['sh', '-c', 'echo "job-1 and job-2 completed"']
restartPolicy: Never

关于kubernetes - 如何将容器作为 Kubernetes 作业按顺序运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40713573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com