Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Watch Kubernetes job output until completion

Is there a way to watch the job's output (STDOUT and STDERR) using kubectl? We need to wait the job completion watching its output and, if the job finishes with error, the entire process should be interrupted.

I'd like to redirect the job output (STDOUT and STDERR) to my current process STDOUT. I want to wait the job completion. In case it finished with error, the current process (which triggered the job via kubectl) should finish in error as well. I know kubectl wait but, as far as I know, it does not support listening to the jobs output.

like image 876
viniciusjssouza Avatar asked Jun 24 '19 19:06

viniciusjssouza


2 Answers

We ended up using three commands to accomplish the task. First, we delete the old job (it might have ran before), create the new job, wait it for completion (with a timeout) and, after it has finished, we print the logs:

kubectl delete job my-job || true
kubectl apply -f ./jobs/my-job.yaml
kubectl wait --for=condition=complete job/my-job --timeout=60s
echo "Job output:"
kubectl logs job/my-job
like image 71
viniciusjssouza Avatar answered Nov 09 '22 16:11

viniciusjssouza


There are few options you can try:

  1. View the job logs in real time:
    • kubectl logs --follow $POD

If you are having trouble locating the proper pod than first go kubectl describe job $JOB Pod name will be under the "Events"

  1. There are few more kubectl commands that can be useful here:
    • kubectl logs -f my-pod - stream pod logs (stdout)
    • kubectl logs -f my-pod -c my-container - stream pod container logs (stdout, multi-container case)
    • kubectl logs -f -l name=myLabel --all-containers - stream all pods logs with label name=myLabel (stdout)

More about that can be found here

  1. Try again with kubectl wait but with proper flags like --for=condition=xxxxx A successful message will be printed to stdout indicating when the specified condition has been met.
like image 5
Wytrzymały Wiktor Avatar answered Nov 09 '22 17:11

Wytrzymały Wiktor