diff --git a/readme.md b/readme.md index 02b9dea..8a4a7b7 100644 --- a/readme.md +++ b/readme.md @@ -59,3 +59,4 @@ * [11.4. Микросервисы: масштабирование](/src/homework/11-microservices/11.4) * [12.1. Компоненты Kubernetes](/src/homework/12-kubernetes/12.1) * [12.2. Команды для работы с Kubernetes](/src/homework/12-kubernetes/12.2) +* [12.3. Развертывание кластера на собственных серверах, лекция 1](/src/homework/12-kubernetes/12.3) diff --git a/src/homework/12-kubernetes/12.3/readme.md b/src/homework/12-kubernetes/12.3/readme.md new file mode 100644 index 0000000..3e7c429 --- /dev/null +++ b/src/homework/12-kubernetes/12.3/readme.md @@ -0,0 +1,35 @@ +Выполнение [домашнего задания](https://github.com/netology-code/devkub-homeworks/blob/main/12-kubernetes-03-install-part-1.md) +по теме "12.3. Развертывание кластера на собственных серверах, лекция 1" + +## Q/A + +> Поработав с персональным кластером, можно заняться проектами. Вам пришла задача подготовить кластер под новый проект. + +### Задание 1 + +> Описать требования к кластеру +> +> Сначала проекту необходимо определить требуемые ресурсы. Известно, что проекту нужны база данных, система кеширования, а само приложение состоит из бекенда и фронтенда. Опишите, какие ресурсы нужны, если известно: +> +> * База данных должна быть отказоустойчивой. Потребляет 4 ГБ ОЗУ в работе, 1 ядро. 3 копии. +> * Кэш должен быть отказоустойчивый. Потребляет 4 ГБ ОЗУ в работе, 1 ядро. 3 копии. +> * Фронтенд обрабатывает внешние запросы быстро, отдавая статику. Потребляет не более 50 МБ ОЗУ на каждый экземпляр, 0.2 ядра. 5 копий. +> * Бекенд потребляет 600 МБ ОЗУ и по 1 ядру на копию. 10 копий. + +Для начала стоит определить требования к control plane, которые будут управлять кластером `kubernetes`. +Если брать минимальные требования к "железу" и рекомендуемое количество инстансов, то +* control plane - 3 ноды, у каждой по 2 ГБ ОЗУ и 2 ядра + +Так как кэш и БД должны быть отказоустойчивыми, то для них стоит выделить отдельные виртуальные машины +и не запускать более одной копии на одной ноде. Таким образом, с учётом небольшого запаса в ресурсах, +получится сформировать следующие требования: +* для БД: 4 ноды (3 рабочие + 1 резервная), у каждой 6 ГБ ОЗУ и 2 ядра +* для кэша: 4 ноды (3 рабочие + 1 резервная), у каждой 6 ГБ ОЗУ и 2 ядра + +Frontend и backend сервисы можно разворачивать вместе на одной ноде. При этом, в случае проблем, +можно на одной ноде развернуть даже несколько копий одного сервиса. С учётом этих вводных можно определить требования: +* FE + BE: 12 нод (10 рабочих + 2 резервные), у каждой 2 ГБ ОЗУ и 2 ядра + +Если посчитать, то в сумме для поддержания работоспособности кластера с запасом на аварийные ситуации потребуется: +* CPU: 6 + 8 + 8 + 24 = 46 ядер +* ОЗУ: 6 + 24 + 24 + 24 = 78 ГБ