Files
school-dev-k8s/practice/7.oneshot-tasks/1.job
Marsel Ibraev f44beb51a9 Add basic info
2021-09-24 11:51:02 +03:00
..
2021-09-24 11:51:02 +03:00
2021-09-24 11:51:02 +03:00

Job

Запускаем простой job

  1. Создаем job
cd ~/slurm/practice/7.oneshot-tasks/1.job
kubectl apply -f job.yaml
  1. Проверяем
kubectl get job

Видим:

NAME    COMPLETIONS   DURATION   AGE
hello   1/1           2s         88s
  1. Смотрим на поды
kubectl get pod

Видим под, созданный джобой:

NAME          READY   STATUS      RESTARTS   AGE
hello-6l9tv   0/1     Completed   0          2m6s
  1. Смотрим его логи
kubectl logs hello-6l9tv

Видим что все отработало правильно:

Mon Mar 18 15:06:10 UTC 2019
Hello from the Kubernetes cluster
  1. Удаляем джоб
kubectl delete job hello

Проверяем работу параметра backoffLimit

  1. Открываем файл job.yaml и находим командy выполняющуюся в поде
args:
  - /bin/sh
  - -c
  - date; echo Hello from the Kubernetes cluster

И ломаем полностью:

args:
  - /bin/sh
  - -c
  - date; echo Hello from the Kubernetes cluster; exit 1
  1. Создаем джоб
kubectl apply -f job.yaml
  1. Проверяем
kubectl get job

Видим:

NAME    COMPLETIONS   DURATION   AGE
hello   0/1           27s        27s
  1. Смотрим на поды
kubectl get pod

Видим поды, созданные джобой:

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

  1. Смотрим в описание джобы
kubectl describe job hello

Видим, что backoffLimit сработал

  Warning  BackoffLimitExceeded  23m   job-controller  Job has reached the specified backoff limit
  1. Удаляем джоб
kubectl delete job hello

Проверяем работу параметра activeDeadlineSeconds

  1. Открываем файл job.yaml и находим командy, выполняющуюся в поде
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
  1. Создаем джоб
kubectl apply -f job.yaml
  1. Проверяем
kubectl get job

Видим:

NAME    COMPLETIONS   DURATION   AGE
hello   0/1           27s        27s
  1. Смотрим на поды
kubectl get pod

Видим поды, созданный джобой

NAME          READY   STATUS   RESTARTS   AGE
hello-bt6g6   1/1     Running   0          5s
  1. Ждем 60 секунд и проверяем джоб
kubectl describe job hello

Видим, что activeDeadlineSeconds сработал

  Warning  DeadlineExceeded  2m17s  job-controller  Job was active longer than specified deadline
  1. Удаляем джоб
kubectl delete job hello