Formation DevOps | Formation kubernetes : CronJob
CronJob
Un CronJob crée des Jobs (objet k8s) selon un calendrier répétitif.
CronJob est destiné à effectuer des actions planifiées régulières telles que des sauvegardes, la génération de rapports, etc.
Un objet CronJob est comme une ligne d’un fichier crontab (table cron) sur un système Unix. Il exécute une tâche périodiquement selon un planning donné, écrit au format Cron .
Les CronJobs ont des limites et des particularités. Par exemple, dans certaines circonstances, un seul CronJob peut créer plusieurs Jobs simultanés.
Cet exemple de manifeste CronJob imprime l’heure actuelle et un message de bonjour toutes les minutes :
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox:1.28
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
Syntaxe de planification
Ce .spec.schedulechamp est requis. La valeur de ce champ suit la syntaxe Cron :
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
│ │ │ │ │ 7 is also Sunday on some systems)
│ │ │ │ │ OR sun, mon, tue, wed, thu, fri, sat
│ │ │ │ │
Job
Un job crée un ou plusieurs pods et continuera à réessayer d’exécuter les pods jusqu’à ce qu’un nombre spécifié d’entre eux se terminent avec succès. À mesure que les pods se terminent avec succès, le job suit les achèvements réussis. Lorsqu’un nombre spécifié de réussites est atteint, le job (c’est-à-dire le travail) est terminée.
La suppression d’un job nettoiera les pods qu’elle a créés. La suspension d’un job supprimera ses pods actifs jusqu’à ce que la tâche reprenne.
Un cas simple consiste à créer un objet Job afin d’exécuter un pod de manière fiable jusqu’à son terme. L’objet Job démarrera un nouveau pod si le premier pod échoue ou est supprimé (par exemple en raison d’une panne matérielle du nœud ou d’un redémarrage du nœud).
Vous pouvez également utiliser un Job pour exécuter plusieurs Pods en parallèle.
Exécuter un exemple de Job
Voici un exemple de configuration de travail. Il calcule π jusqu’à 2000 places et l’imprime. Cela prend environ 10 secondes pour terminer.
kubectl apply -f job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl:5.34.0
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
kubectl get pods --selector=batch.kubernetes.io/job-name=pi
Une autre façon de visualiser les logs d’un Job :
kubectl logs jobs/pi
Le résultat est similaire à ceci :
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214
Automatic Cleanup for Finished Jobs
Une autre façon de nettoyer automatiquement les Jobs terminés (soit Completeou Failed) consiste à utiliser un mécanisme TTL fourni par un contrôleur TTL pour les ressources terminées, en spécifiant le .spec.ttlSecondsAfterFinishedchamp du Job.
Lorsque le contrôleur TTL nettoie le Job, il supprime le Job en cascade, c’est-à-dire supprime ses objets dépendants, tels que les Pods, ainsi que le Job. Notez que lorsque le Job est supprimé, ses garanties de cycle de vie, telles que les finaliseurs, seront honorées.
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: Neve
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io