Skip to content

Latest commit

 

History

History
83 lines (54 loc) · 5.37 KB

hw4.md

File metadata and controls

83 lines (54 loc) · 5.37 KB

В каждом пункте, кроме 0 и 1, вам потребуется поднятый Kubernetes кластер и утилита, которая помогает с ним взаимодействовать (https://kubernetes.io/docs/reference/kubectl/cheatsheet/)

Для удобства управления ресурсами k8s можно установить Lens

Основная часть:

  1. Установите kubectl

  2. Разверните Kubernetes (5 баллов)

    Вы можете развернуть его в облаке:

    Либо воспользоваться локальной инсталляцией:

    Напишите, какой способ вы выбрали (приложите скрины).

    Убедитесь, что кластер поднялся:

    kubectl cluster-info
  3. Напишите простой Pod manifest для вашего приложения, назовите его online-inference-pod.yaml (4 балла)

    Задеплойте приложение в кластер:

    kubectl apply -f online-inference-pod.yaml

    Убедитесь, что все поднялось:

    kubectl get pods

    Приложите скриншот, где видно, что все поднялось

  4. Пропишите Requests / Limits и напишите, зачем это нужно в описании PR. Закоммитьте файл online-inference-pod-resources.yaml (2 балла)

  5. Модифицируйте свое приложение так, чтобы оно стартовало не сразу (с задержкой 20-30 секунд) и падало спустя минуты работы. Добавьте Liveness и Readiness пробы и посмотрите, что будет происходить. Напишите в описании -- чего вы этим добились. Закоммитьте отдельный манифест online-inference-pod-probes.yaml (и изменение кода приложения). Опубликуйте ваше приложение (из ДЗ #2) с тэгом v2 (3 балла)

  6. Создайте ReplicaSet, сделайте 3 реплики вашего приложения. Закоммитьте online-inference-replicaset.yaml (3 балла)

    Ответьте на вопрос, что будет, если сменить docker образ в манифесте и одновременно с этим:

    a) уменьшить число реплик

    б) увеличить число реплик

    Поды с какими версиями образа будут внутри кластера?

  7. Опишите Deployment для вашего приложения (3 балла) Играя с параметрами деплоя (maxSurge, maxUnavaliable), добейтесь ситуации, когда при деплое новой версии:

    a) есть момент времени, когда на кластере существуют как все старые поды, так и все новые (опишите эту ситуацию) (закоммитьте файл online-inference-deployment-blue-green.yaml)

    б) одновременно с поднятием новых версий, гасятся старые (закоммитьте файл online-inference-deployment-rolling-update.yaml)

Бонусные активности:

  1. Установите Helm и оформите Helm chart. Включите в состав чарта ConfigMap и Service (+5 доп баллов)
  2. Разверните kubernetes кластер с помощью terraform (+5 доп баллов), закоммитьте terraform скрипты и инструкцию по использованию. Материалы:

Процедура сдачи:

После выполнения ДЗ создаем пулл реквест, в ревьюеры добавляем Mikhail-M, ждем комментариев (на которые нужно ответить) и/или оценки. Ветка должна называться homework4.

Пожалуйста добавьте к своему пулл реквесту метку hw4. Если вы студент MADE, то дополнительно укажите тэг -- MADE, если вы студент Технопарка -- тэг TECHNOPARK.

Сроки выполнения:

Мягкий дедлайн: 26 июня 23:59

Жесткий дедлайн: 29 июня 23:59

Важно: после мягкого дедлайна все полученные баллы умножаются на 0.6