DevOps
Job Kubernetes
Créer et déployer un job kubernetes
Un Job Kubernetes permet d’exécuter une ou plusieurs tâches de façon ponctuelle ou batch, jusqu’à leur complétion. Contrairement à un Deployment ou un Pod classique, le Job garantit que la tâche sera exécutée jusqu’à la réussite (ou l’échec après un certain nombre de tentatives).
Exemple de manifeste Job YAML
apiVersion: batch/v1
kind: Job
metadata:
name: exemple-job
spec:
template:
spec:
containers:
- name: mon-job
image: mon-image:latest
command: ["sh", "-c", "echo Hello depuis un job Kubernetes!"]
restartPolicy: Never
backoffLimit: 3
image
: remplacez par l’image de votre application (Python, Go, Java, Node, etc).command
: la commande à exécuter dans le conteneur.restartPolicy: Never
: recommandé pour les jobs batch.backoffLimit
: nombre de tentatives avant de considérer le job en échec.
Déployer le job
kubectl apply -f job.yaml
Vérifier l’état du job :
kubectl get jobs
kubectl describe job exemple-job
kubectl logs job/exemple-job
Cas d’usage courants
- Traitement de données ponctuel (ETL, migration de base de données)
- Génération de rapports
- Exécution de scripts de maintenance
- Import/export de fichiers
Bonnes pratiques
- Utilisez des variables d’environnement pour la configuration (section
env:
). - Stockez les secrets dans des
Secret
ouConfigMap
Kubernetes. - Prévoyez une gestion des erreurs et des logs dans votre application.
- Nettoyez les jobs terminés avec un
ttlSecondsAfterFinished
:
spec:
ttlSecondsAfterFinished: 3600 # Suppression automatique après 1h
Aller plus loin
- Pour des tâches planifiées, utilisez un
CronJob
Kubernetes. - Pour des jobs parallèles, ajustez
completions
etparallelism
:
spec:
completions: 5
parallelism: 2