Я создал CronJob, используя файл yaml ниже.
kind: CronJob
metadata:
name: $DEPLOY_NAME
spec:
# Run the job once a day at 8 PM
schedule: "0 20 * * *"
# If the previous job is not yet complete during the scheduled time, do not start the next job
concurrencyPolicy: Forbid
jobTemplate:
spec:
# The pods will be available for 3 days (259200 seconds) so that logs can be checked in case of any failures
ttlSecondsAfterFinished: 259200
template:
spec:
containers:
- name: $DEPLOY_NAME
image: giantswarm/tiny-tools
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: "0.01"
memory: 256Mi
limits:
cpu: "0.5"
memory: 512Mi
command: ["/bin/sh"]
args: ["-c", "cd /home/tapi && sh entrypoint.sh"]
Как упоминалось в ttlSecondsAfterFinished
, k8s сохраняет мою работу в кластере. Однако модуль, созданный заданием (после завершения), через некоторое время удаляется.
В соответствии с политикой сборки мусора мой объект модуля должен зависеть от моя работа. А поскольку объект задания не собирает мусор, мой объект-модуль также должен оставаться в живых. Я что-то упускаю?
kubectl describe cronjob $DEPLOY_NAME
и проверьтеEvents
- person Oleg Butuzov   schedule 15.11.2019.spec.ttlSecondsAfterFinished
был введен в v1.12. Если версия v1.12 +, проверьте, включен ли шлюз функцийTTLAfterFinished
. - person apisim   schedule 15.11.2019kubectl get jobs <job_name> -o yaml
, есть ли TTL? - person Crou   schedule 18.11.2019ttlSecondsAfterFinished: 259200
- person Manish Bansal   schedule 18.11.2019