库中有很多字段,但是它基本上是关于作业是否完成的,但是如何检查作业是否成功完成或失败或失败
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
}
}
这就是我现在正在检查的方式,我不确定这是正确的
答案 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,则该操作应避免重试该作业。