Bobcares

Kubernetes Pause CronJob | How to?

by | Jul 27, 2022

Pausing CronJob on Kubernetes can be easily achieved by following any of the below methods suggested by our Support team.

At Bobcares, we offer solutions for every query, big and small, as a part of our Server Management Service.

Need to know more about pausing CronJob on Kubernetes? Continue reading and get in touch with us if you have any further inquiries.

How To Pause CronJob In Kubernetes

CronJobs are tasks that run automatically according to a set schedule. CronJobs are most commonly used for:

  1. Automating system maintenance tasks
  2. Backups of files and databases regularly
  3. Notifications via email
  4. To perform other repeating tasks

Sometimes we need to pause or stop the CronJobs. For instance, While scheduling an application in Kubernetes to run as a CronJob, there is a code change. Hence this results in a need to change the image of the CronJob. Then we must disable the current CronJob and deploy a new CronJob with the most recent Image version.

Here our Support team will assist in pausing Kubernetes CronJob using easy codes and commands.

1. Using command line

On the command line, type any of the below code so that we can pause the CronJob:

$ kubectl patch cronjobs $(kubectl get cronjobs | awk '{ print $1 }' | tail -n +2) -p '{"spec" : {"suspend" : true }}'

$ kubectl get cronjobs | grep False | cut -d' ' -f 1 | xargs kubectl patch cronjobs -p '{"spec" : {"suspend" : true }}'

2. By Creating Resource Quotas

cat <<EOF | kubectl apply -f -
# https://kubernetes.io/docs/concepts/policy/resource-quotas/#object-count-quota
apiVersion: v1
kind: ResourceQuota
metadata:
  name: limit-generic-resources
spec:
  hard:
    pods: "0"
    count/persistentvolumeclaims : "0"
    count/services : "0"
    count/secrets : "0"
    count/configmaps : "0"
    count/replicationcontrollers : "0"
    count/deployments.apps : "0"
    count/replicasets.apps : "0"
    count/statefulsets.apps : "0"
    count/jobs.batch : "0"
    count/cronjobs.batch : "0"
EOF

Also, there are other methods to disable CronJobs in Kubernetes. We can

  1. run and edit “suspend” from False to True.

    kubectl edit cronjob CRON_NAME (if not in default namespace, then add "-n NAMESPACE_NAME" at the end)

  2. save the yaml file locally and then just run the below command which recreates the cron.

    kubectl create -f cron_YAML

Change the value of the .spec.suspend field in the current CronJob resource to true. It will complete all the current jobs and suspends future jobs. The .spec.suspend field is optional as well. If set to true, all subsequent executions are halted. This option does not apply to previously started executions. The default value is false.

Use the following code to suspend a CronJob via patch:

kubectl patch cronjobs -p '{"spec" : {"suspend" : true }}'

[Do you require assistance with another problem? We are just a click away.]

Conclusion

CronJob makes repetitive tasks easier. However, we may need to pause it occasionally. To conclude, our Support team went over pausing CronJob in Kubernetes details.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.