logo

The Long, Winding and Bumpy Road to CronJob’s GA

Authors:   Maciej Szulik, Alay Patel


Summary

The presentation discusses the journey towards the GA release of CronJob API in Kubernetes, including the challenges faced and the improvements made in the new controller.
  • The idea of CronJob API was introduced in Kubernetes in 2015.
  • The initial implementation of the scheduled job controller was challenging due to the lack of API groups and versions.
  • The old controller had performance and scaling issues when handling thousands of cron jobs.
  • The new controller solved these issues and introduced new features such as a histogram metrics and minor optimizations.
  • The new controller was tested with a sample workload of 6120 cron jobs and showed no visible delay in scheduling.
  • The presentation expresses gratitude towards the users and developers who contributed to the development of the CronJob API.
The old controller had scaling problems when adding more and more cron jobs, which resulted in a linear increase in time between processing consecutive job creation. In contrast, the new controller did not experience any lag in job creation even when tested with a workload of 6120 cron jobs. This illustrates the significant performance boost and improvements made in the new controller.

Abstract

The CronJob API just reached GA, and the new controller is solving all the performance and reliability problems of the past. Come join us to learn about the 6 year journey that got us here! We will talk about the people who sparked the discussions and delivered the initial implementation. We will cover all the major problems that users were faced to handle over the years. Finally, we will discuss the solutions and our gratitude to the users and developers standing behind this part of Kubernetes. Maciej (one of the co-authors of CronJob) and Alay (developer of the new controller) will try to squeeze as much as possible in 30 minutes: - From scheduled jobs, through jobs, to cron jobs - Evolution of the API - Known issues with the old controller implementation - Performance boost and improvements in the new controller - Possible future improvements

Materials:

Tags: