Я створив роботу з розкладом Kubernetes , яка працює два рази на день згідно зі своїм графіком. Однак я хотів би запустити його вручну для тестування. Як я можу це зробити?
Я створив роботу з розкладом Kubernetes , яка працює два рази на день згідно зі своїм графіком. Однак я хотів би запустити його вручну для тестування. Як я можу це зробити?
Відповіді:
Питання № 47538 , яке згадував @jdf , зараз закрите, і це зараз можливо. Оригінальну реалізацію можна знайти тут, але синтаксис змінився.
З kubectl v1.10.1 + команда:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Схоже, це сумісність із старими кластерами, як це працювало для мене на v0.8.x.
Ви можете створити просту роботу на основі свого 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
*uid
поля, і ви можете легко їх видалити за допомогою цієї командиsed -i '/uid:.*/d' my_job.yaml
EDIT - липень 2018: см @ pedro_sland в відповідь , як ця функція в даний час реалізується
Моя оригінальна відповідь нижче залишиться правильною для старих версій kubectl менше, ніж v1.10.1
===================================================== =======================
Окрім створення нового робочого місця (як це запропонували інші відповіді), немає поточного способу зробити це. Тут можна відстежувати запит на функцію з кубернетами: https://github.com/kubernetes/kubernetes/isissue/47538
На жаль, жоден з наведених вище прикладів синтаксису не працює в 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>
Я створив невелику утиліту cmd для зручності робити саме це, а також призупиняти та непотрібно виконувати роботу.
Існує можливість запустити роботу cron вручну на цій вкладці на інформаційній панелі k8s
gcloud components install kubectl
потім kubernetes.io/docs/tasks/tools/install-kubectl