mirror of
https://github.com/slurm-personal/school-dev-k8s.git
synced 2026-06-27 13:50:24 +00:00
Change some practice
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
# 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
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: hello
|
||||
spec:
|
||||
backoffLimit: 2
|
||||
activeDeadlineSeconds: 60
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: hello
|
||||
image: busybox
|
||||
args:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- date; echo Hello from the Kubernetes cluster
|
||||
restartPolicy: Never
|
||||
@@ -0,0 +1,58 @@
|
||||
# CronJob
|
||||
|
||||
1) Создаем CronJob:
|
||||
|
||||
```bash
|
||||
kubectl apply -f cronjob.yaml
|
||||
```
|
||||
|
||||
2) Проверяем
|
||||
|
||||
```bash
|
||||
kubectl get cronjob
|
||||
```
|
||||
|
||||
Видим:
|
||||
|
||||
```bash
|
||||
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
|
||||
hello */1 * * * * False 0 <none> 14s
|
||||
```
|
||||
|
||||
3) Через минуту пробуем посмотреть на Job'ы
|
||||
|
||||
```bash
|
||||
kubectl get job
|
||||
```
|
||||
|
||||
Видим созданный Job
|
||||
|
||||
```bash
|
||||
NAME COMPLETIONS DURATION AGE
|
||||
hello-1552924260 1/1 2s 49s
|
||||
```
|
||||
|
||||
4) Смотрим на Pod'ы
|
||||
|
||||
```bash
|
||||
kubectl get pod
|
||||
```
|
||||
|
||||
Видим Pod
|
||||
|
||||
```bash
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
hello-1552924260-gp7pk 0/1 Completed 0 80s
|
||||
```
|
||||
|
||||
5) Если мы подождем 5-10 минут, то увидим что старые Job'ы и Pod'ы удаляются по мере появления новых
|
||||
|
||||
```bash
|
||||
kubectl get job,pod
|
||||
```
|
||||
|
||||
6) Удаляем CronJob
|
||||
|
||||
```bash
|
||||
kubectl delete -f cronjob.yaml
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
apiVersion: batch/v1beta1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: hello
|
||||
spec:
|
||||
schedule: "*/1 * * * *"
|
||||
concurrencyPolicy: Allow
|
||||
jobTemplate:
|
||||
spec:
|
||||
backoffLimit: 2
|
||||
activeDeadlineSeconds: 100
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: hello
|
||||
image: busybox
|
||||
args:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- date; echo Hello from the Kubernetes cluster
|
||||
restartPolicy: Never
|
||||
Reference in New Issue
Block a user