mirror of
https://github.com/slurm-personal/school-dev-k8s.git
synced 2026-06-27 13:50:24 +00:00
Job
Запускаем простой job
- Создаем job
kubectl apply -f ~/school-dev-k8s/practice/10.oneshot-tasks/1.job/job.yaml
- Проверяем
kubectl get job
Видим:
NAME COMPLETIONS DURATION AGE
hello 1/1 2s 88s
- Смотрим на Pod'ы
kubectl get pod
Видим Pod, созданный Job'ой:
NAME READY STATUS RESTARTS AGE
hello-6l9tv 0/1 Completed 0 2m6s
- Смотрим его логи
kubectl logs hello-6l9tv
Видим что все отработало правильно:
Mon Mar 18 15:06:10 UTC 2019
Hello from the Kubernetes cluster
- Удаляем Job
kubectl delete job hello
Проверяем работу параметра backoffLimit
- Открываем файл job.yaml и находим командy выполняющуюся в Pod:
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
И ломаем полностью:
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster; exit 1
- Создаем Job:
kubectl apply -f ~/school-dev-k8s/practice/10.oneshot-tasks/1.job/job.yaml
- Проверяем
kubectl get job
Видим:
NAME COMPLETIONS DURATION AGE
hello 0/1 27s 27s
- Смотрим на Pod'ы
kubectl get pod
Видим Pod'ы, созданные Job'ой:
NAME READY STATUS RESTARTS AGE
hello-5nvqf 0/1 Error 0 22m
hello-ks4ks 0/1 Error 0 22m
hello-rl984 0/1 Error 0 22m
Они в статусе Error
- Смотрим в описание Job'ы
kubectl describe job hello
Видим, что backoffLimit сработал
Warning BackoffLimitExceeded 23m job-controller Job has reached the specified backoff limit
- Удаляем Job
kubectl delete job hello
Проверяем работу параметра activeDeadlineSeconds
- Открываем файл job.yaml и находим командy, выполняющуюся в Pod'е:
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
И делаем ее бесконечной
args:
- /bin/sh
- -c
- while true; do date; echo Hello from the Kubernetes cluster; sleep 1; done
- Создаем Job
kubectl apply -f ~/school-dev-k8s/practice/10.oneshot-tasks/1.job/job.yaml
- Проверяем
kubectl get job
Видим:
NAME COMPLETIONS DURATION AGE
hello 0/1 27s 27s
- Смотрим на Pod'ы
kubectl get pod
Видим Pod'ы, созданный Job'ой
NAME READY STATUS RESTARTS AGE
hello-bt6g6 1/1 Running 0 5s
- Ждем 60 секунд и проверяем Job
kubectl describe job hello
Видим, что activeDeadlineSeconds сработал
Warning DeadlineExceeded 2m17s job-controller Job was active longer than specified deadline
- Удаляем Job
kubectl delete job hello
Есть еще два неописанных в манифесте Job'а параметра
Это .spec.completions и .spec.parallelism . Они отвечают за желаемое количество успешно выполненных Pod'ов в рамках Job'а и за параллельный запуск Pod'ов в рамках Job'а соответственно.