Skip to content

Job and Cronjob

Job

Scenario

  • Create Job.

Demo:

Create Job pi.

kubectl apply -f - << EOF
apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl:5.34
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4
EOF

Get details of Job.

kubectl get jobs

Get details of Job Pod. The status Completed means the job was done successfully.

kubectl get pod

Get log info of the Job Pod.

kubectl pi-2s74d
3.141592653589793..............

Clean up

kubectl delete job pi

Cronjob

Scenario

  • Create Cronjob.

Demo:

Create Cronjob hello.

kubectl apply -f - << EOF
apiVersion: batch/v1
kind: CronJob
metadata:
 name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
   spec:
    template:
     spec:
      containers:
      - name: hello
        image: busybox
        args:
        - /bin/sh
        - -c
        - date ; echo Hello from the kubernetes cluster
      restartPolicy: OnFailure
EOF

Get detail of Cronjob

kubectl get cronjobs -o wide

Result

NAME    SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE   CONTAINERS   IMAGES    SELECTOR
hello   */1 * * * *   False     0        <none>          25s   hello        busybox   <none>

Monitor Jobs. Every 1 minute a new job will be created.

kubectl get jobs -w

Clean up

kubectl delete cronjob hello