#kubernetes #kubernetes-cronjob
#kubernetes #kubernetes-cronjob
Вопрос:
У меня есть простое cronjob, которое выполняется каждые 10 минут:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: myjob
spec:
schedule: "*/10 * * * *" #every 10 minutes
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
spec:
containers:
- name: job
image: image
imagePullPolicy: Always
restartPolicy: OnFailure
Он действительно запускается каждые 10 минут, но я бы хотел, чтобы он запускался в первый раз при развертывании cronjob. возможно ли это?
Комментарии:
1. что вам на самом деле нужно? нужно ли применять задание только один раз, когда оно было развернуто?
2. Каждые x минут бит один раз после его развертывания
Ответ №1:
У вас может быть одноразовое CronJob, запускающее запланированное CronJob:
kubectl create job --from=cronjob/<name of cronjob> <name of job>
Одноразовый CronJob должен выполняться после создания запланированного CronJob, и его образ должен включать двоичный файл kubectl. Разрешения Api-сервера, необходимые для запуска kubectl в контейнере, могут быть предоставлены путем привязки ServiceAccount к одноразовому CronJob.
Комментарии:
1. Также связанная проблема с github , в которой говорится о запуске
CronJobs
вручную и запуске его при создании.2. Тьфу, это выглядит немного неуклюже, чтобы запустить задание в контейнере, я думаю, я бы предпочел дублировать cronjob и обернуть его с помощью helm