Kubernetes 可以在工作流中将分析作业链接在一起吗?

Kubernetes can analytical jobs be chained together in a workflow?

阅读 Kubernetes "Run to Completion" 文档,它说作业可以 运行 并行,但是是否可以将一系列应该 运行 顺序的作业链接在一起order(平行and/or非平行).

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


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

我以前用过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

总的来说,没有。为此,请查看 Airflow 之类的内容。作业对象为您提供了一种非常简单的方法来 运行 一个容器,直到它完成,仅此而已。并行性在于您可以 运行 多个副本,它不是一个完整的工作流管理系统 :)

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

其他备选方案包括:

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

将近 3 年后,我将加入另一个答案。

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

实际上在后台使用 Argo。