Disclosure: I work at Google on Kubernetes.
Disclosure: I work at Google on Kubernetes.
- As mentioned previously, retry count limit to job/pod would be useful.
- Minor nit: Deleting old job with the pod is cumbersome with current python API. Either delete_namespaced_job with orphan_dependencies: False, but I would need to check if job exists beforehand (deleting if job does not exist fails). On the other hand delete_collection_namespaced_job lets me delete job by label selector, but I also need to manually clean up the pod.
- Another nit: When exporting stackdriver logs collected by GKE from a job to big query, each log ends up as a separate logsource.
- Retry control is course grained. IIUC the only option are "no retry at all" or "terminate if job have been active for X seconds". If my jobs tend to be long and failure happens early, second option can lead to hundreds of retries. Each job retry is expensive, as it creates a new pod. I remember ending up with 100s pods.
Alternatively, all Jobs matching this query must succeed before this job. Failures can be OK if a configurable threshold of success is met. Exceeding the thresh fails the dependent jobs before they get to run.
You can do all of this with supervisor pods, but since you asked...