Comment puis-je supprimer automatiquement complété Kubernetes emplois?
Est-il un moyen de supprimer automatiquement les travaux terminés en outre de faire une tâche cron pour nettoyer les travaux terminés?
La K8s Travail De Documentation stipule que le comportement prévu des travaux réalisés est pour eux de rester dans un état terminé jusqu'à ce supprimés manuellement. Parce que je suis en cours d'exécution des milliers d'emplois à jour via k8s cronjobs et je ne veux pas continuer les travaux terminés autour de.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez maintenant définir les limites de l'historique, ou de désactiver l'histoire, de sorte que l'échec ou le succès d'emplois ne sont pas conservés indéfiniment. Voir ma réponse ici. La Documentation est ici.
CronJob
objets (dont le demandeur a mentionné), mais pasJob
objets.C'est possible à partir de la version 1.12 Alpha avec
ttlSecondsAfterFinished
. Un exemple de Nettoyer Les Tâches Terminées Automatiquement:J'ai trouvé le ci-dessous pour travailler
Pour enlever les tâches ayant échoué:
Pour supprimer les tâches terminées:
Comme indiqué dans la documentation "C'est à l'utilisateur de supprimer des emplois", voir http://kubernetes.io/docs/user-guide/jobs/#job-termination-and-cleanup
Je voudrais exécuter une gousse de faire ce nettoyage basé sur le nom de la tâche et de certaines conditions, et laisser ainsi kubernetes au moins prendre soin de la disponibilité de votre processus ici. Vous pouvez exécuter une tâche périodique pour cela (en supposant que vous exécutez kubernetes 1.5).
J'ai récemment construit un kubernetes-opérateur pour effectuer cette tâche.
Après déployer surveillera sélectionné espace de noms et de supprimer les tâches terminées/gousses s'ils ont terminé sans erreurs/redémarre.
https://github.com/lwolf/kube-cleanup-operator
Un moyen simple de les supprimer par l'exécution d'une tâche cron:
kubectl delete job $(kubectl get jobs -o jsonpath='{.items[?(@.status.completionTime)].metadata.name}')
À l'aide de jsonpath:
je suis en utilisant wernight/kubectl's kubectl image
prévu un cron suppression de tout ce qui est
completed
2 - 9 days old
(j'ai donc 2 jours pour passer en revue toutes les tâches ayant échoué)elle circule toutes les 30 minutes donc je ne suis pas de comptabilité pour les emplois 10+ jours