具有多个作业计数器的kubernetes
我是库伯内特斯的新手,我正在尝试移动一条现有的管道,我们使用的是没有K8的queing系统 我有一个perl脚本,它为我必须处理的每个示例生成一个批处理作业列表(yml文件)。 然后我运行具有多个作业计数器的kubernetes,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我是库伯内特斯的新手,我正在尝试移动一条现有的管道,我们使用的是没有K8的queing系统 我有一个perl脚本,它为我必须处理的每个示例生成一个批处理作业列表(yml文件)。 然后我运行kubectl apply--recursive-f 16S\u jobscripts/ 例如,每个样品需要按顺序处理,并经过不同的处理 例如: 样品->清洁->质量->一些计算 样本->清洁->质量->一些计算 等等,300个样品 因此,我们的想法是准备所有的yml文件并按顺序运行它们。这是有效的 但是,使用
kubectl apply--recursive-f 16S\u jobscripts/
例如,每个样品需要按顺序处理,并经过不同的处理
例如:
样品->清洁->质量->一些计算
样本->清洁->质量->一些计算
等等,300个样品
因此,我们的想法是准备所有的yml文件并按顺序运行它们。这是有效的
但是,使用这种方法,我需要等待所有样本都被处理(假设在我运行下一个作业之前,所有干净的作业都需要完成)
在这种情况下,独立运行每个样本的最佳方法是什么??怎么做
下面的yml描述了一份工作的一个样本。您可以看到,我正在使用一个计数器(mergereads-1用于样本1(a))
如果我理解正确,你可以使用 它确实支持对一组独立但 相关工作项目 <>也可以考虑使用ARGO。 Argo Workflows是一个开源容器本机工作流引擎 协调Kubernetes上的并行作业。Argo工作流是 实现为Kubernetes CRD(自定义资源定义)
如果有帮助,请告诉我 SampleB开始之前是否需要完成清洁->质量->一些计算?你能详细描述一下当前的工作流程和期望的工作流程吗?根据您目前提供的内容,很难理解。我希望每个样本都可以独立运行。所以Samamreac->clean->然后是quality->然后是一些计算,理想情况下,我希望每个样本彼此独立运行。你会怎么做?嗨,是的,很有帮助。对不起,我的描述不够清楚。但我要研究的是argo,它似乎适合并行运行所有样本。你知道有任何教程或简单的例子使用这两种工作模式吗?很高兴听到这个。我找到了一些你可能会觉得有用的。
apiVersion: batch/v1
kind: Job
metadata:
name: merge-reads-1
namespace: namespace-id-16s
labels:
jobgroup: mergereads
spec:
template:
metadata:
name: mergereads-1
labels:
jobgroup: mergereads
spec:
containers:
- name: mergereads-$idx
image: .../bbmap:latest
command: ['sh', '-c']
args: ['
cd workdir &&
bbmerge.sh -Xmx1200m in1=files/trimmed/1.R1.trimmed.fq.gz in2=files/trimmed/1.R2.trimmed.fq.gz out=files/mergedpairs/1.merged.fq.gz merge=t mininsert=300 qtrim2=t minq=27 ratiomode=t &&
ls files/mergedpairs/
']
resources:
limits:
cpu: 1
memory: 2000Mi
requests:
cpu: 0.8
memory: 1500Mi
volumeMounts:
- mountPath: '/workdir'
name: db
volumes:
- name: db
persistentVolumeClaim:
claimName: workdir
restartPolicy: Never