¿Cómo puedo activar un trabajo programado de Kubernetes manualmente?

Respuestas:

186

El problema # 47538 que mencionó @jdf ahora está cerrado y ahora es posible. La implementación original se puede encontrar aquí, pero la sintaxis ha cambiado.

Con kubectl v1.10.1 + el comando es:

kubectl create job --from=cronjob/<cronjob-name> <job-name>

Parece ser compatible con versiones anteriores de clústeres más antiguos, ya que me funcionó en v0.8.x.

pedro_sland
fuente
3
Asegúrese de verificar su versión de kubectl, a partir del 5/10/18, la versión instalada a través del SDK de Google Cloud no tiene este comando disponible. gcloud components install kubectlluego kubernetes.io/docs/tasks/tools/install-kubectl
Scott Jungwirth
18

Puede crear un trabajo simple basado en su trabajo programado. Si ya ejecuta un trabajo programado, hay trabajos en el historial.

kubectl get jobs

NAME               DESIRED   SUCCESSFUL   AGE
hello-1477281595   1         1            11m
hello-1553106750   1         1            12m
hello-1553237822   1         1            9m

Exporta uno de estos trabajos:

kubectl get job hello-1477281595 -o yaml > my_job.yaml

Luego edite el yaml un poco, borre algunos campos innecesarios y ejecútelo manualmente:

kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
Camil
fuente
1
Solo una pequeña adición sobre "borrar algunos campos innecesarios". Kubernetes se queja de los *uidcampos y puede eliminarlos fácilmente con este comandosed -i '/uid:.*/d' my_job.yaml
Aleksandr Podkutin
La suposición de que ya hay trabajos en la historia a menudo no se sostiene.
Andrew Savinykh
9

EDITAR - julio de 2018: consulte la respuesta de @ pedro_sland ya que esta función ya se ha implementado

Mi respuesta original a continuación seguirá siendo correcta para versiones anteriores de kubectl inferiores a v1.10.1

================================================ ======================

Además de crear un nuevo trabajo (como han sugerido las otras respuestas), no existe una forma actual de hacerlo. Es una solicitud de función en kubernetes ahora que se puede rastrear aquí: https://github.com/kubernetes/kubernetes/issues/47538

jdf
fuente
7

Desafortunadamente, ninguna de las sintaxis de ejemplo anteriores funciona en Google Kubernetes Engine (GCP). Además, los propios documentos de GKE están equivocados. :(

En Kubernetes 1.10.6.gke-2, la sintaxis de trabajo es

kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Joseph Lust
fuente
increíble para solucionar problemas con la resistencia de trabajos cron, ¡gracias!
Lauksas
0

Si desea probar el trabajo, cree una configuración de trabajo a partir de su configuración de trabajo cron (ScheduledJob) y ejecútela manualmente con el siguiente comando:

kubectl create -f ./job.yaml
Kamran
fuente
0

Hay una opción para activar el trabajo cron manualmente dentro de esta pestaña en el panel de k8s

Ver imagen

borja garcia
fuente