Я создал Запланированное задание Kubernetes, которое выполняется два раза в день в соответствии с его графиком. Однако я хотел бы запустить его вручную для тестирования. Как я могу это сделать?
Как я могу запускать запланированное задание Kubernetes вручную?
Ответ 1
Проблема # 47538 о том, что @jdf упоминал, теперь закрыта, и теперь это возможно. Исходную реализацию можно найти здесь, но синтаксис изменился.
В kubectl v1.10. 1+ команда выглядит так:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Кажется, что он обратно совместим со старыми кластерами, так как он работал для меня на v0.8.x.
Ответ 2
Вы можете создать простую работу на основе вашего ScheduledJob. Если вы уже запускаете ScheduledJob, в истории есть задания.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Экспортируйте одно из этих заданий:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Затем немного измените yaml, удалив ненужные поля и запустив их вручную:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
Ответ 3
ОБНОВЛЕНИЕ - июль 2018 года: см. @Pedro_sland answer, поскольку эта функция теперь реализована
Мой оригинальный ответ ниже останется верным для более старых версий kubectl менее v1.10.1
================================================== ======================
Помимо создания новой работы (как предложили другие ответы), в настоящее время нет способа сделать это. Это запрос функции в kubernetes теперь, который можно отследить здесь: https://github.com/kubernetes/kubernetes/issues/47538
Ответ 4
К сожалению, ни один из приведенных выше примеров синтаксиса не работает в Google Kubernetes Engine (GCP). Кроме того, сами документы GKE неверны. :(
В Кубернетесе 1.10.6.gke-2
рабочий синтаксис:
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Ответ 5
Я создал небольшую утилиту cmd для удобства сделать это, а также приостановить и отключить cronjobs.
Ответ 6
Если вы хотите протестировать задание, создайте Job config из Cron Job (ScheduledJob) и запустите его вручную, используя следующую команду:
kubectl create -f ./job.yaml