J'ai créé une tâche planifiée Kubernetes , qui s'exécute deux fois par jour selon son calendrier. Cependant, je voudrais le déclencher manuellement à des fins de test. Comment puis-je faire ceci?
J'ai créé une tâche planifiée Kubernetes , qui s'exécute deux fois par jour selon son calendrier. Cependant, je voudrais le déclencher manuellement à des fins de test. Comment puis-je faire ceci?
Réponses:
La question # 47538 que @jdf mentionné est maintenant fermé et cela est désormais possible. L'implémentation d'origine peut être trouvée ici mais la syntaxe a changé.
Avec kubectl v1.10.1 + la commande est:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Il semble être rétrocompatible avec les anciens clusters car cela fonctionnait pour moi sur la v0.8.x.
Vous pouvez créer un travail simple basé sur votre ScheduledJob. Si vous exécutez déjà un ScheduledJob, il y a des travaux dans l'historique.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Exportez l'un de ces travaux:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Ensuite, modifiez un peu le yaml, en effaçant certains champs inutiles et exécutez-le manuellement:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
champs et vous pouvez les supprimer facilement par cette commandesed -i '/uid:.*/d' my_job.yaml
EDIT - Juillet 2018: voir la réponse de @ pedro_sland car cette fonctionnalité est désormais implémentée
Ma réponse originale ci-dessous restera correcte pour les anciennes versions de kubectl inférieures à la v1.10.1
=================================================== =======================
Mis à part la création d'un nouvel emploi (comme les autres réponses l'ont suggéré), il n'existe actuellement aucun moyen de le faire. Il s'agit d'une demande de fonctionnalité avec kubernetes maintenant qui peut être suivie ici: https://github.com/kubernetes/kubernetes/issues/47538
Malheureusement, aucun des exemples de syntaxe ci-dessus ne fonctionne dans Google Kubernetes Engine (GCP). De plus, les documents GKE eux-mêmes sont erronés. :(
Dans Kubernetes 1.10.6.gke-2
, la syntaxe de travail est
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
J'ai créé un petit utilitaire cmd pour plus de commodité pour faire exactement cela et aussi pour suspendre et annuler la suspension de cronjobs.
Il existe une option pour déclencher la tâche cron manuellement dans cet onglet du tableau de bord k8s
gcloud components install kubectl
puis kubernetes.io/docs/tasks/tools/install-kubectl