Kubernetes可以将工作作为工作流中的步骤链接在一起吗?

时间:2018-09-13 20:59:59

标签: kubernetes workflow pipeline jobs data-science

在阅读Kubernetes的“完成运行”文档时,它表示可以并行运行作业,但是可以将应按顺序运行(并行和/或不并行)的一系列作业链接在一起

https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/


还是由用户来跟踪完成了哪些作业并使用PubSub消息传递服务触发下一个作业?

3 个答案:

答案 0 :(得分:3)

无法使用 Kubernetes 核心 API 对象管理作业工作流。

其他替代方案包括:

本文档可能也有帮助:https://www.preprints.org/manuscript/202001.0378/v1/download

答案 1 :(得分:2)

过去,我曾使用PodSpec下的initContainers解决类似问题:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  - name: init-mydb
    image: busybox
    command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']

使用“ depends”关键字在这里查看容器链接也是一种选择:

https://github.com/kubernetes/kubernetes/issues/1996

答案 2 :(得分:1)

将近 3 年后,我会再给出一个答案。

Kubeflow 管道 https://www.kubeflow.org/docs/components/pipelines/overview/pipelines-overview/

实际上在幕后使用 Argo。