Ho creato un processo pianificato Kubernetes , che viene eseguito due volte al giorno in base alla sua pianificazione. Tuttavia, vorrei attivarlo manualmente a scopo di test. Come posso fare questo?
Ho creato un processo pianificato Kubernetes , che viene eseguito due volte al giorno in base alla sua pianificazione. Tuttavia, vorrei attivarlo manualmente a scopo di test. Come posso fare questo?
Risposte:
Il problema # 47538 che @jdf menzionato è ora chiuso e questo è ora possibile. L'implementazione originale può essere trovata qui ma la sintassi è cambiata.
Con kubectl v1.10.1 + il comando è:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Sembra essere retrocompatibile con i cluster più vecchi poiché ha funzionato per me su v0.8.x.
Puoi creare un lavoro semplice basato sul tuo lavoro programmato. Se hai già eseguito uno ScheduledJob, ci sono lavori nella cronologia.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Esporta uno di questi lavori:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Quindi modifica un po 'lo yaml, cancellando alcuni campi non necessari ed eseguilo manualmente:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
campi e puoi rimuoverli facilmente con questo comandosed -i '/uid:.*/d' my_job.yaml
EDIT - Luglio 2018: vedi la risposta di @ pedro_sland poiché questa funzione è stata ora implementata
La mia risposta originale di seguito rimarrà corretta per le versioni precedenti di kubectl inferiori alla v1.10.1
================================================== ======================
A parte la creazione di un nuovo lavoro (come suggerito dalle altre risposte), non esiste attualmente un modo per farlo. Ora è una richiesta di funzionalità in Kubernetes che può essere monitorata qui: https://github.com/kubernetes/kubernetes/issues/47538
Sfortunatamente, nessuna delle sintassi di esempio sopra funziona in Google Kubernetes Engine (GCP). Inoltre, i documenti GKE stessi sono sbagliati. :(
In Kubernetes 1.10.6.gke-2
, la sintassi di lavoro è
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Ho creato una piccola utility cmd per comodità per fare proprio questo e anche sospendere e riattivare cronjobs.
C'è un'opzione per attivare manualmente il cron job all'interno di questa scheda nella dashboard di k8s
gcloud components install kubectl
quindi kubernetes.io/docs/tasks/tools/install-kubectl