Utworzyłem Kubernetes zaplanowanego zadania , czyli dwa razy dziennie zgodnie z harmonogramem. Chciałbym jednak uruchomić go ręcznie do celów testowych. W jaki sposób mogę to zrobić?
Utworzyłem Kubernetes zaplanowanego zadania , czyli dwa razy dziennie zgodnie z harmonogramem. Chciałbym jednak uruchomić go ręcznie do celów testowych. W jaki sposób mogę to zrobić?
Odpowiedzi:
Problem # 47538 , o którym wspomniał @jdf, jest teraz zamknięty i jest to teraz możliwe. Oryginalną implementację można znaleźć tutaj, ale składnia uległa zmianie.
W kubectl v1.10.1 + polecenie brzmi:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Wydaje się, że jest wstecznie kompatybilny ze starszymi klastrami, ponieważ działał dla mnie w wersji 0.8.x.
Możesz utworzyć proste zadanie na podstawie swojego ScheduledJob. Jeśli wykonałeś już ScheduledJob, w historii są zadania.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Eksportuj jedno z tych zadań:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Następnie edytuj trochę yaml, usuwając niepotrzebne pola i uruchom go ręcznie:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
pola i możesz je łatwo usunąć tym poleceniemsed -i '/uid:.*/d' my_job.yaml
EDIT - lipiec 2018: zobacz @ pedro_sland za odpowiedzi jako funkcja ta została wdrożona
Moja pierwotna odpowiedź poniżej pozostanie poprawna dla starszych wersji kubectl starszych niż v1.10.1
==================================================== ======================
Poza utworzeniem nowej pracy (jak sugerowały inne odpowiedzi), obecnie nie ma na to żadnego sposobu. Jest to teraz żądanie funkcji w kubernetes, które można śledzić tutaj: https://github.com/kubernetes/kubernetes/issues/47538
Niestety żadna z powyższych przykładowych składni nie działa w Google Kubernetes Engine (GCP). Ponadto sami doktorzy GKE są w błędzie. :(
W Kubernetes 1.10.6.gke-2
działająca składnia to
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Stworzyłem małe narzędzie cmd dla wygody, aby to zrobić, a także zawiesić i cofnąć zawieszenie cronjobs.
Istnieje opcja ręcznego wyzwalania zadania cron w tej zakładce na pulpicie nawigacyjnym K8s
gcloud components install kubectl
następnie kubernetes.io/docs/tasks/tools/install-kubectl