Ich habe einen geplanten Kubernetes-Job erstellt , der gemäß seinem Zeitplan zweimal täglich ausgeführt wird. Ich möchte es jedoch zu Testzwecken manuell auslösen. Wie kann ich das machen?
114
Ich habe einen geplanten Kubernetes-Job erstellt , der gemäß seinem Zeitplan zweimal täglich ausgeführt wird. Ich möchte es jedoch zu Testzwecken manuell auslösen. Wie kann ich das machen?
Die Ausgabe # 47538 , die erwähnte @jdf ist jetzt geschlossen , und das ist jetzt möglich. Die ursprüngliche Implementierung finden Sie hier, aber die Syntax hat sich geändert.
Mit kubectl v1.10.1 + lautet der Befehl:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Es scheint abwärtskompatibel mit älteren Clustern zu sein, da es für mich unter v0.8.x funktioniert hat.
gcloud components install kubectl
dann kubernetes.io/docs/tasks/tools/install-kubectlSie können einen einfachen Job basierend auf Ihrem ScheduledJob erstellen. Wenn Sie bereits einen ScheduledJob ausführen, befinden sich Jobs im Verlauf.
Exportieren Sie einen dieser Jobs:
Bearbeiten Sie dann das Yaml ein wenig, löschen Sie einige unnötige Felder und führen Sie es manuell aus:
quelle
*uid
Felder und Sie können sie leicht mit diesem Befehl entfernensed -i '/uid:.*/d' my_job.yaml
BEARBEITEN - Juli 2018: Siehe die Antwort von @ pedro_sland, da diese Funktion jetzt implementiert wurde
Meine ursprüngliche Antwort unten bleibt für ältere Versionen von kubectl unter v1.10.1 korrekt
================================================== ======================
Abgesehen von der Erstellung eines neuen Jobs (wie in den anderen Antworten vorgeschlagen) gibt es derzeit keine Möglichkeit, dies zu tun. Es handelt sich um eine Funktionsanforderung bei kubernetes, die jetzt hier verfolgt werden kann: https://github.com/kubernetes/kubernetes/issues/47538
quelle
Leider funktioniert keine der oben genannten Beispielsyntaxen in Google Kubernetes Engine (GCP). Auch die GKE-Dokumente selbst sind falsch. :((
In Kubernetes
1.10.6.gke-2
lautet die funktionierende Syntaxquelle
Ich habe ein kleines Cmd-Dienstprogramm erstellt, um dies zu vereinfachen und Cronjobs auszusetzen und die Suspendierung aufzuheben.
https://github.com/iJanki/kubecron
quelle
Wenn Sie den Job testen wollen, einen erstellen Job Config von Ihrer Cron - Job (ScheduledJob) config und führen Sie es manuell mit dem folgenden Befehl:
quelle
Es gibt eine Option, um den Cron-Job manuell über diese Registerkarte im k8s-Dashboard auszulösen
quelle