Exécuter un cronjob
En plus des jobs ponctuels, Kubernetes prend également en charge les cronjobs (tâches planifiées) pour exécuter des tâches selon une planification régulière. Dans cet exemple, nous allons créer un cronjob qui exécute une commande toutes les minutes.
Créez un fichier nommé cronjob.yaml
dans /home/labex/project/
avec le contenu suivant :
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello-cronjob
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
command: ["sh", "-c", 'echo "Hello, World!"']
restartPolicy: Never
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
Dans ce fichier, nous définissons un cronjob nommé hello-cronjob
qui exécute une commande toutes les minutes. La commande est la même que celle que nous avons utilisée dans le premier exemple pour afficher "Hello, World!" dans la console.
Pour créer le cronjob, exécutez la commande suivante :
kubectl apply -f cronjob.yaml
Vous pouvez vérifier l'état du cronjob en exécutant la commande suivante :
kubectl get cronjobs
Une fois le cronjob en cours d'exécution, vous pouvez afficher les journaux du pod en exécutant la commande suivante :
kubectl logs -f <POD_NAME>
Remplacez <POD_NAME>
par le nom de n'importe quel pod créé par le cronjob, et vous pouvez obtenir le POD_NAME
avec la commande kubectl get pod |grep hello-cronjob
.
Félicitations, vous avez réussi à exécuter un cronjob dans Kubernetes!