В тестовой среде Kubernetes нужно обеспечить обмен файлами между контейнерам пода и доступ к логам ноды.
- Установленное K8s-решение (например, MicroK8S).
- Установленный локальный kubectl.
- Редактор YAML-файлов с подключенным GitHub-репозиторием.
Что нужно сделать
Создать Deployment приложения, состоящего из двух контейнеров и обменивающихся данными.
- Создать Deployment приложения, состоящего из контейнеров busybox и multitool.
- Сделать так, чтобы busybox писал каждые пять секунд в некий файл в общей директории.
- Обеспечить возможность чтения файла контейнером multitool.
- Продемонстрировать, что multitool может читать файл, который периодоически обновляется.
- Предоставить манифесты Deployment в решении, а также скриншоты или вывод команды из п. 4.
$ kubectl apply -f ./src/Deployment.yml
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
multitool-busybox-869cbd767d-6cbwq 2/2 Running 0 2m22s
$ kubectl exec -it multitool-busybox-869cbd767d-6cbwq -- cat /input/success.txt
Success!
Success!
$ kubectl exec -it multitool-busybox-869cbd767d-6cbwq -- cat /input/success.txt
Success!
Success!
Success!
Success!
Success!
Success!
Что нужно сделать
Создать DaemonSet приложения, которое может прочитать логи ноды.
- Создать DaemonSet приложения, состоящего из multitool.
- Обеспечить возможность чтения файла
/var/log/syslog
кластера MicroK8S. - Продемонстрировать возможность чтения файла изнутри пода.
- Предоставить манифесты Deployment, а также скриншоты или вывод команды из п. 2.
$ kubectl apply -f ./src/Deployment2.yml
$ kubectl get daemonset
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
multitool 1 1 1 1 1 <none> 29s
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
multitool-4hjpl 1/1 Running 0 68s
$ kubectl exec -it multitool-4hjpl -- ls -la log
drwxr-xr-x 5 root root 4096 Apr 26 14:53 .
drwxr-xr-x 1 root root 4096 May 10 14:22 ..
-rw-r--r-- 1 root root 2399 May 10 14:20 alternatives.log
-rw-rw---- 1 root 43 0 Apr 3 21:38 btmp
drwxr-xr-x 2 root root 12288 May 10 14:22 containers
-rw-rw-r-- 1 root 43 292292 Apr 3 21:38 lastlog
drwxr-xr-x 13 root root 4096 May 10 14:22 pods
drwx------ 2 root root 4096 Apr 3 21:38 private
...
- Домашняя работа оформляется в своём Git-репозитории в файле README.md. Выполненное задание пришлите ссылкой на .md-файл в вашем репозитории.
- Файл README.md должен содержать скриншоты вывода необходимых команд
kubectl
, а также скриншоты результатов. - Репозиторий должен содержать тексты манифестов или ссылки на них в файле README.md.