One Sketch Away

K8s references: K8s cronjob

Created by Ranjith Vijayan on Apr 02, 2022

This post is created for my own reference of k8s resources as part of learning

k8s CronJob object is like one line of a crontab (cron table) file. It runs a job periodically on a given schedule, written in Cron format.

A typical use case is to clean up the Log files from Log directories on a periodic basis

A sample manifest to delete log files is below

cron.yaml


apiVersion: batch/v1
kind: CronJob
metadata:
  name: demo-clean
  namespace: pv-test
spec:
  #schedule: "* * * * *"
  schedule: "@daily"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: demo-clean
            image: fsgbu-mum-128.snbomprshared1.gbucdsint02bom.oraclevcn.com:5000/utils/busybox:latest
            args:
            - /bin/sh
            - -c
            - date; whoami; echo "Deleting files older than 2 days " && find /logs -type f -iname "*.log" -mtime +2 -print -delete && echo "Deleting empty Dir" && find /logs -empty -type d -print -delete
            volumeMounts:
            - name: pv
              mountPath: "/logs"
 
          restartPolicy: OnFailure
          volumes:
          - name: pv
            persistentVolumeClaim:
              claimName: task-pv-claim

    kubectl apply -f cron.yaml
    kubectl get cronjob -n pv-test -w
    kubectl get po -n pv-test  -w
    NAME                  READY   STATUS      RESTARTS   AGE
    task-pv-pod           1/1     Running     0          16h
    app-with-extn         1/1     Running     0          11h
    db-promote--1-bjvzw   0/1     Completed   0          23m
    demo-clean-27482730--1-7kp64   0/1     Pending     0          0s
    demo-clean-27482730--1-7kp64   0/1     Pending     0          0s
    demo-clean-27482730--1-7kp64   0/1     ContainerCreating   0          0s
    demo-clean-27482730--1-7kp64   0/1     Completed           0          4s
    demo-clean-27482730--1-7kp64   0/1     Completed           0          4s
    kubectl logs -n pv-test demo-clean-27482730--1-7kp64