Come posso attivare manualmente un processo pianificato Kubernetes?


Risposte:


186

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.


3
Assicurati di controllare la tua versione di kubectl, a partire dal 5/10/18 la versione installata tramite Google Cloud SDK non ha questo comando disponibile. gcloud components install kubectlquindi kubernetes.io/docs/tasks/tools/install-kubectl
Scott Jungwirth

18

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

1
Solo una piccola aggiunta sulla "cancellazione di alcuni campi non necessari". Kubernetes si lamenta dei *uidcampi e puoi rimuoverli facilmente con questo comandosed -i '/uid:.*/d' my_job.yaml
Aleksandr Podkutin

L'assunto che ci siano già lavori nella storia spesso non regge.
Andrew Savinykh

9

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


7

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>

fantastico per risolvere i problemi con la resilienza dei lavori cron, grazie!
lauksas


0

Se vuoi testare il lavoro, crea una configurazione del lavoro dalla tua configurazione Cron Job (ScheduledJob) ed eseguilo manualmente utilizzando il seguente comando:

kubectl create -f ./job.yaml

0

C'è un'opzione per attivare manualmente il cron job all'interno di questa scheda nella dashboard di k8s

Vedi immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.