Files
school-dev-k8s/practice/10.oneshot-tasks/1.job/README.md
T
2021-09-27 16:59:35 +03:00

198 lines
3.1 KiB
Markdown

# Job
### Запускаем простой job
1) Создаем job
```bash
kubectl apply -f job.yaml
```
2) Проверяем
```bash
kubectl get job
```
Видим:
```bash
NAME COMPLETIONS DURATION AGE
hello 1/1 2s 88s
```
3) Смотрим на Pod'ы
```bash
kubectl get pod
```
Видим Pod, созданный Job'ой:
```bash
NAME READY STATUS RESTARTS AGE
hello-6l9tv 0/1 Completed 0 2m6s
```
4) Смотрим его логи
```bash
kubectl logs hello-6l9tv
```
Видим что все отработало правильно:
```bash
Mon Mar 18 15:06:10 UTC 2019
Hello from the Kubernetes cluster
```
5) Удаляем Job
```bash
kubectl delete job hello
```
### Проверяем работу параметра backoffLimit
6) Открываем файл job.yaml и находим командy выполняющуюся в Pod:
```yaml
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
```
И ломаем полностью:
```yaml
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster; exit 1
```
7) Создаем Job:
```bash
kubectl apply -f job.yaml
```
8) Проверяем
```bash
kubectl get job
```
Видим:
```bash
NAME COMPLETIONS DURATION AGE
hello 0/1 27s 27s
```
9) Смотрим на Pod'ы
```bash
kubectl get pod
```
Видим Pod'ы, созданные Job'ой:
```bash
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
10) Смотрим в описание Job'ы
```bash
kubectl describe job hello
```
Видим, что backoffLimit сработал
```bash
Warning BackoffLimitExceeded 23m job-controller Job has reached the specified backoff limit
```
11) Удаляем Job
```bash
kubectl delete job hello
```
### Проверяем работу параметра activeDeadlineSeconds
12) Открываем файл job.yaml и находим командy, выполняющуюся в Pod'е:
```yaml
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
```
И делаем ее бесконечной
```yaml
args:
- /bin/sh
- -c
- while true; do date; echo Hello from the Kubernetes cluster; sleep 1; done
```
13) Создаем Job
```bash
kubectl apply -f job.yaml
```
14) Проверяем
```bash
kubectl get job
```
Видим:
```bash
NAME COMPLETIONS DURATION AGE
hello 0/1 27s 27s
```
15) Смотрим на Pod'ы
```bash
kubectl get pod
```
Видим Pod'ы, созданный Job'ой
```bash
NAME READY STATUS RESTARTS AGE
hello-bt6g6 1/1 Running 0 5s
```
16) Ждем 60 секунд и проверяем Job
```bash
kubectl describe job hello
```
Видим, что activeDeadlineSeconds сработал
```bash
Warning DeadlineExceeded 2m17s job-controller Job was active longer than specified deadline
```
17) Удаляем Job
```bash
kubectl delete job hello
```