Creé un trabajo programado de Kubernetes , que se ejecuta dos veces al día según su programación. Sin embargo, me gustaría activarlo manualmente con fines de prueba. ¿Cómo puedo hacer esto?
Creé un trabajo programado de Kubernetes , que se ejecuta dos veces al día según su programación. Sin embargo, me gustaría activarlo manualmente con fines de prueba. ¿Cómo puedo hacer esto?
Respuestas:
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.
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
*uid
campos y puede eliminarlos fácilmente con este comandosed -i '/uid:.*/d' my_job.yaml
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
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>
He creado una pequeña utilidad cmd por conveniencia para hacer precisamente eso y también suspender y anular la suspensión de cronjobs.
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
Hay una opción para activar el trabajo cron manualmente dentro de esta pestaña en el panel de k8s
gcloud components install kubectl
luego kubernetes.io/docs/tasks/tools/install-kubectl