如何使用客户端Go库检查kubernetes作业是成功还是失败

时间:2018-10-11 21:05:54

标签: go kubernetes client-go

库中有很多字段,但是它基本上是关于作业是否完成的,但是如何检查作业是否成功完成或失败或失败

if con.Type == v1.JobComplete && con.Status == corev1.ConditionTrue && job.Status.Succeeded > 0 {
    fmt.Printf("Job: %v Completed Successfully: %v\n", name, con)
    break
} else if con.Type == v1.JobFailed && con.Status == corev1.ConditionTrue {
    if job.Status.Active == 0 && job.Status.Succeeded == 0 {
        fmt.Printf("Job: %v Failed: %v\n", name, con)
        break
    }
}

这就是我现在正在检查的方式,我不确定这是正确的

1 个答案:

答案 0 :(得分:0)

您可以仅使用Active,Succeeded和Failed变量来了解作业的状态。

示例:

    batchClient := kubernetesapi.BatchV1()
    jobClient := batchClient.Jobs(NameSpace)


    job, _ := jobClient.Get(jobName, metav1.GetOptions{})

    if job.Status.Active > 0 {
    return "Job is still running"

    } else {
      if job.Status.Succeeded > 0 {
       return "Job Successful"
       } 
       return "Job failed"
    }

如果您将 backOffLimit 设置为大于1,则该操作应避免重试该作业。