Я запланировал запуск приложения как Cronjob в Kubernetes. Когда происходит изменение кода, я также меняю изображение CronJob.
Я ищу вариант, в котором я могу отключить запущенный в данный момент CronJob и развернуть новый CronJob с последней версией образа.
Как я могу отключить Cronjob в Kubernetes, не удаляя его yaml-манифест?

Вы можете использовать что-то, что будет действительным в отношении формата задания Cron, но на самом деле эта дата не должна появляться в любое время в календарной дате, например, 31 февраля.
* * 31 2 *
Измените текущий ресурс cronjob, включив в него .spec.suspend и установите для него значение true. Все текущие задания будут завершены, но будущие задания будут приостановлены.
Если вам также нужно остановить выполняемые в данный момент задания, вам придется их удалить.
Если вы хотите приостановить задание cron через патч, используйте:
kubectl patch cronjobs <job-name> -p '{"spec" : {"suspend" : true }}'
kubectl patch cronjobs <job-name> -p '{\"spec\" : {\"suspend\" : true }}'Патч @Zhongxia Zhou с приостановкой false
Одновременная приостановка всех cronjobs kubectl get cronjobs | grep False | cut -d' ' -f 1 | xargs kubectl patch cronjobs -p '{"spec" : {"suspend" : true }}'
kubectl patch cronjobs job-name -p "{\"spec\" : {\"suspend\" : true }}"
Это сработало в терминале Windows, спасибо
Я пытаюсь приостановить работу, используя указанную выше команду, но получаю сообщение об ошибке: невозможно проанализировать "'{spec": yaml: обнаружен неожиданный конец потока