Выполнение домашнего задания по теме "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 ГБ