J’ai découvert qu’un cronjob sur un projet ne se lançait plus :
[salleman@syl:~]$ oc get cronjob.batch/poll
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
poll */2 * * * * False 0 6d 57d
Pour avoir plus d’info, on peut utiliser la commande “describe” :
[salleman@syl:~]$ oc describe cronjob.batch/poll
Name: poll
Namespace: plm-webconf
Labels: <none>
Annotations: <none>
Schedule: */2 * * * *
Concurrency Policy: Replace
Suspend: False
Starting Deadline Seconds: <unset>
Selector: <unset>
Parallelism: <unset>
Completions: <unset>
Pod Template:
Labels: parent=cronjobpi
Containers:
pi:
Image: curlimages/curl
Port: <none>
Host Port: <none>
Command:
curl
backend:8080/api/poll
Environment: <none>
Mounts: <none>
Volumes: <none>
Last Schedule Time: Fri, 19 Jun 2020 18:10:00 +0200
Active Jobs: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedNeedsStart 1m (x37135 over 4d) cronjob-controller Cannot determine if job needs to be started: Too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew.
L’explication de ce paramètre est ici : https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#cron-job-limitations
En gros, si un job ne se lance pas 100 fois, celui-ci est désactivé.
Je n’ai pas réussi à positionner la valeur ni à réactiver le cronjob… pour résoudre le problème, j’ai supprimé puis recréé le cronjob.
Une idée ? @depouill ?