Новичок в kubernetes. Я пытаюсь переместить текущий конвейер, который у нас есть, используя систему очередей без k8s.
У меня есть скрипт perl, который генерирует список пакетных заданий (yml-файлов) для каждого изобразцы, которые я должен обработать. Затем я запускаю kubectl apply --recursive -f 16S_jobscripts/
Например, каждый образец должен обрабатываться последовательно и проходить различную обработку
Пример:
SampleA -> clean -> quality -> some_calculation
SampleB -> clean -> quality -> some_calculation
и т. Д. Для 300 выборок.
Поэтому идея состоит в том, чтобы подготовить все файлы yml и запустить их последовательно. Это работает.
НО, при таком подходе мне нужно подождать, пока все образцы будут обработаны (скажем, что все чистые задания должны быть выполнены до того, как я выполню следующее качество заданий).
Каков наилучший подход в таком случае, запустить каждый образец независимо ?? how?
В приведенном ниже yml описан один образец для одной работы. Вы можете видеть, что я использую счетчик (mergereads-1 для sample1 (A))
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