Як я можу запустити роботу з розкладом Kubernetes вручну?


Відповіді:


187

Питання № 47538 , яке згадував @jdf , зараз закрите, і це зараз можливо. Оригінальну реалізацію можна знайти тут, але синтаксис змінився.

З kubectl v1.10.1 + команда:

kubectl create job --from=cronjob/<cronjob-name> <job-name>

Схоже, це сумісність із старими кластерами, як це працювало для мене на v0.8.x.


3
Обов’язково перевірте свою версію kubectl, оскільки станом на 10.10.18 у версії, встановленої через Google Cloud SDK, ця команда недоступна. gcloud components install kubectlпотім kubernetes.io/docs/tasks/tools/install-kubectl
Скотт Юнгвірт

18

Ви можете створити просту роботу на основі свого 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

1
Просто невелике доповнення про "стирання деяких непотрібних полів". Kubernetes скаржиться на *uidполя, і ви можете легко їх видалити за допомогою цієї командиsed -i '/uid:.*/d' my_job.yaml
Олександр Подкутін

Припущення про те, що в історії вже є робочі місця, часто не виконується.
Андрій Савіних

9

EDIT - липень 2018: см @ pedro_sland в відповідь , як ця функція в даний час реалізується

Моя оригінальна відповідь нижче залишиться правильною для старих версій kubectl менше, ніж v1.10.1

===================================================== =======================

Окрім створення нового робочого місця (як це запропонували інші відповіді), немає поточного способу зробити це. Тут можна відстежувати запит на функцію з кубернетами: https://github.com/kubernetes/kubernetes/isissue/47538


7

На жаль, жоден з наведених вище прикладів синтаксису не працює в 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>

приємно вирішувати проблеми із стійкістю до роботи на платформі, дякую!
lauksas


0

Якщо ви хочете перевірити завдання, створіть конфігурацію Job з конфігурації Cron Job (ScheduledJob) та запустіть її вручну за допомогою наступної команди:

kubectl create -f ./job.yaml

0

Існує можливість запустити роботу cron вручну на цій вкладці на інформаційній панелі k8s

Дивіться зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.