Skip to content

Implementation TOBIAS Kubernetes S3 Version

goymann edited this page Jan 7, 2020 · 19 revisions

Running Jobs on Kubernetes

To run a job you on the Kubernetescluster you have to send a yaml with the configurations to the cluster. To get the les for calculating to the cluster and the results back to your local machine you need the S3-Storage. First, you upload your Data to the S3 then the job on the cluster starts and downloads the les from the S3. When calculation has finished the job uploads the results to the S3 and then your VM can download the results from the S3 to your machine.

Vortrag_TOBIAS_nextflow_Kubernetes_3

How the pipeline works

The most time-consuming part of calculating jobs on the cluster is transfer- ring the data through the S3-Storage to the Cluster. For these reasons, the bigwig’s are storade on the cluster in a NFS Storage so that every pod can get the them from there. The plotting on Kubernetes is split in to 3 processes.

1. In the first process the bigwig files from the ATACcoreect are sending
   to the NFS volume on the cluster.

Step1

2. When the biwigs are present on the NFS the pipeline starts the plotting on the Cluster. All plots for one         
   motive run in one Pod. When the plotting has finished the Plots get upload to the S3-Storage.    

Step2

3. In the last step when a Pod on the Cluster has finished the les get back download form the S3 to your VM.

Step3

Process 2 and 3 must be split because nextflow only starts as many processes as cores on your vm are available. Therefore, if process 2 and 3 are merged only the number of cores, motifs are plotted parallel. The functions which are used in the pipeline are come from the Pythonpackge PYKS. The Picture bellow shows the the 3 Processes which are describet above and the used functions from the PYKS packeges. In the picture you allsoe see the the 4 optional process with this one you can clean up its emptys the PVc by starting a Job on the Cluster which mounts it and the the Job emptys the Volume.

nextflow_kube_processe