首页 > 解决方案 > 等待 Kubernetes 作业完成

问题描述

这是我正在运行的作业列表:

>kubectl get jobs 
NAME                 COMPLETIONS   DURATION   AGE
create-samplenames   1/1           32s        25h
download-db          1/1           20s        26h
download-fastq       1/1           20s        26h
download-scripts     1/1           22s        32m
trimming-fasta-1     0/1           63s        63s
trimming-fasta-2     0/1           63s        63s
trimming-fasta-3     0/1           63s        63s
trimming-fasta-4     0/1           62s        62s

我试图等到 trimming-fasta-* 工作完成。我在这里找到了这篇文章,但对于某些已完成的工作,它将返回 TRUE。我真的很想等待所有的 trimming-fasta-* 工作完成??

until kubectl  get jobs   -o jsonpath='{.items[*].status.conditions[?(@.type=="Complete")].status}' ; do sleep 1 ; done
True True True True(base) [david@archlinux otustaxonomy]$ 

任何想法只检查修剪工作。顺便说一句,他们都属于同一个作业组,但没有找到任何可以检查作业组完成的东西

apiVersion: batch/v1
kind: Job
metadata:
  name: trimming-fasta-$idx
  namespace: namespace-test
  labels:
    jobgroup: trimming
spec:....

任何想法 ??

标签: kubernetes

解决方案


根据kubectl wait用法:

$ wait ([-f FILENAME] | resource.group/resource.name | resource.group [( -l label | --all)]) [ --for =delete|--for condition =available]

您可以将标签与 一起使用kubectl wait,因此只需执行以下操作即可等待所有修剪作业:

kubectl wait jobs -l jobgroup=trimming --for=condition=complete


推荐阅读