How to view logs of failed jobs with kubectl?

11/21/2018

I've created a Kubernetes job that has now failed. Where can I find the logs to this job?

I'm not sure how to find the associated pod (I assume once the job fails it deletes the pod)?

Running kubectl describe job does not seem to show any relevant information:

Name:           app-raiden-migration-12-19-58-21-11-2018
Namespace:      localdev
Selector:       controller-uid=c2fd06be-ed87-11e8-8782-080027eeb8a0
Labels:         jobType=database-migration
Annotations:    kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"batch/v1","kind":"Job","metadata":{"annotations":{},"labels":{"jobType":"database-migration"},"name":"app-raiden-migration-12-19-58-21-1...
Parallelism:    1
Completions:    1
Start Time:     Wed, 21 Nov 2018 12:19:58 +0000
Pods Statuses:  0 Running / 0 Succeeded / 1 Failed
Pod Template:
  Labels:  controller-uid=c2fd06be-ed87-11e8-8782-080027eeb8a0
           job-name=app-raiden-migration-12-19-58-21-11-2018
  Containers:
   app:
    Image:  pp3-raiden-app:latest
    Port:   <none>
    Command:
      php
      artisan
      migrate
    Environment:
      DB_HOST:        local-mysql
      DB_PORT:        3306
      DB_DATABASE:    raiden
      DB_USERNAME:    <set to the key 'username' in secret 'cloudsql-db-credentials'>  Optional: false
      DB_PASSWORD:    <set to the key 'password' in secret 'cloudsql-db-credentials'>  Optional: false
      LOG_CHANNEL:    stderr
      APP_NAME:       Laravel
      APP_KEY:        ABCDEF123ERD456EABCDEF123ERD456E
      APP_URL:        http://192.168.99.100
      OAUTH_PRIVATE:  <set to the key 'oauth_private.key' in secret 'laravel-oauth'>  Optional: false
      OAUTH_PUBLIC:   <set to the key 'oauth_public.key' in secret 'laravel-oauth'>   Optional: false
    Mounts:           <none>
  Volumes:            <none>
Events:
  Type     Reason                Age   From            Message
  ----     ------                ----  ----            -------
  Normal   SuccessfulCreate      2m    job-controller  Created pod: app-raiden-migration-12-19-58-21-11-2018-pwnjn
  Warning  BackoffLimitExceeded  2m    job-controller  Job has reach the specified backoff limit
-- Chris Stryczynski
kubectl
kubernetes

4 Answers

12/11/2019

You can view the logs of the pod using the command.

kubectl logs PODNAME -c CONTAINERNAME -n NAMESPACE

-- Darshil Shah
Source: StackOverflow

12/30/2018

You can get the pods of this job by running:

kubectl get pods --selector=job-name=app-raiden-migration-12-19-58-21-11-2018

but in this case i think you won't find any pods because no pod is created, and as mentioned in this link: Job Termination and Cleanup, pods are not deleted after jobs completion. But still i don't know how you can find out why that pod failed to run (but if there is a pod and you could find it, you can find the logs of that pod). I had the same mistake and i ran the job again and job worked successfully.

EDIT:

I just see the events of your job, your job has made pod and you can see the logs of your pod by your pod name as I mentioned above.

-- MohammadMahdi Eilbeigi
Source: StackOverflow

1/15/2019

One other approach:

  • kubectl describe job $JOB
  • Pod name is shown under "Events"
  • kubectl logs $POD
-- David Thomas
Source: StackOverflow

11/21/2018

Use this command to show all pods, even failed ones:

kubectl get pods -A

And then a pod will be shown like below:

app-raiden-migration-12-19-58-21-11-2018-pwnjn 0/1 Error 0 6m

Then use: kubectl logs lighthouse-timer-1553800620-pwssv

-- Chris Stryczynski
Source: StackOverflow