DEV Community

Maxime Guilbert
Maxime Guilbert

Posted on • Edited on

Supprimer automatiquement une Job dans Kubernetes

Quand on travaille avec des jobs dans Kubernetes, on peut avoir le besoin de les faire rouler une fois quand on déploie et après on n'en a plus besoin. Donc conserver la ressource vous est inutile et vous voulez la supprimer. (D'autant plus si lors de vos déploiements vous modifiez certaines informations de la job - ce qui peut causer des erreurs)

Pour ce faire, il vous suffit d'ajouter le champ .spec.ttlSecondsAfterFinished dans la définition de votre Job avec comme valeur, le nombre de secondes après lequel vous voulez que la Job soit terminée.

Exemple

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-ttl
spec:
  ttlSecondsAfterFinished: 100
  template:
    spec:
      containers:
      - name: pi
        image: perl:5.34.0
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
Enter fullscreen mode Exit fullscreen mode

Mais attention!! J'ai bien mentionné terminée, du coup peut importe si votre Job s'est terminée avec succès ou non, elle sera supprimée après le délais défini! Par conséquent, faites attention à la valeur que vous définissez!

En effet, si vous n'avez pas un système mis en place qui va rammasser les logs, vous n'aurez aucune vision sur ce qui a pu se passer, et donc débugger en cas de soucis.

Le mieux est de définir dans tous les cas une valeur suffisamment grande pour que vous puissez voir ce qu'il se passe sur votre cluster après un déploiement et être capable de récupérer les informations avant qu'elles ne disparaissent.


Si vous utilisez Helm, on va voir prochainement qu'il y a un système existant qui est bien plus utile.


Liens

J'espère que ça vous sera utile! 🍺


Vous voulez me supporter?

Buy Me A Coffee

Top comments (0)