В каждом пункте, кроме 0 и 1, вам потребуется поднятый Kubernetes кластер и утилита, которая помогает с ним взаимодействовать (https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
Для удобства управления ресурсами k8s можно установить Lens
Основная часть:
-
Установите
kubectl
-
Разверните Kubernetes (5 баллов)
Вы можете развернуть его в облаке:
- https://cloud.google.com/kubernetes-engine
- https://mcs.mail.ru/containers/
- https://cloud.yandex.ru/services/managed-kubernetes
Либо воспользоваться локальной инсталляцией:
Напишите, какой способ вы выбрали (приложите скрины).
Убедитесь, что кластер поднялся:
kubectl cluster-info
-
Напишите простой Pod manifest для вашего приложения, назовите его
online-inference-pod.yaml
(4 балла)Задеплойте приложение в кластер:
kubectl apply -f online-inference-pod.yaml
Убедитесь, что все поднялось:
kubectl get pods
Приложите скриншот, где видно, что все поднялось
-
Пропишите Requests / Limits и напишите, зачем это нужно в описании PR. Закоммитьте файл
online-inference-pod-resources.yaml
(2 балла) -
Модифицируйте свое приложение так, чтобы оно стартовало не сразу (с задержкой 20-30 секунд) и падало спустя минуты работы. Добавьте Liveness и Readiness пробы и посмотрите, что будет происходить. Напишите в описании -- чего вы этим добились. Закоммитьте отдельный манифест
online-inference-pod-probes.yaml
(и изменение кода приложения). Опубликуйте ваше приложение (из ДЗ #2) с тэгомv2
(3 балла) -
Создайте ReplicaSet, сделайте 3 реплики вашего приложения. Закоммитьте
online-inference-replicaset.yaml
(3 балла)Ответьте на вопрос, что будет, если сменить docker образ в манифесте и одновременно с этим:
a) уменьшить число реплик
б) увеличить число реплик
Поды с какими версиями образа будут внутри кластера?
-
Опишите Deployment для вашего приложения (3 балла) Играя с параметрами деплоя (
maxSurge
,maxUnavaliable
), добейтесь ситуации, когда при деплое новой версии:a) есть момент времени, когда на кластере существуют как все старые поды, так и все новые (опишите эту ситуацию) (закоммитьте файл
online-inference-deployment-blue-green.yaml
)б) одновременно с поднятием новых версий, гасятся старые (закоммитьте файл
online-inference-deployment-rolling-update.yaml
)
Бонусные активности:
- Установите Helm и оформите Helm chart. Включите в состав чарта
ConfigMap
иService
(+5 доп баллов) - Разверните kubernetes кластер с помощью terraform (+5 доп баллов), закоммитьте terraform скрипты и инструкцию по использованию. Материалы:
Процедура сдачи:
После выполнения ДЗ создаем пулл реквест, в ревьюеры добавляем Mikhail-M, ждем комментариев (на которые нужно ответить) и/или оценки. Ветка должна называться homework4.
Пожалуйста добавьте к своему пулл реквесту метку hw4. Если вы студент MADE, то дополнительно укажите тэг -- MADE, если вы студент Технопарка -- тэг TECHNOPARK.
Сроки выполнения:
Мягкий дедлайн: 26 июня 23:59
Жесткий дедлайн: 29 июня 23:59
Важно: после мягкого дедлайна все полученные баллы умножаются на 0.6