Поработав с персональным кластером, можно заняться проектами. Вам пришла задача подготовить кластер под новый проект.
Сначала проекту необходимо определить требуемые ресурсы. Известно, что проекту нужны база данных, система кеширования, а само приложение состоит из бекенда и фронтенда. Опишите, какие ресурсы нужны, если известно:
- База данных должна быть отказоустойчивой. Потребляет 4 ГБ ОЗУ в работе, 1 ядро. 3 копии.
- Кэш должен быть отказоустойчивый. Потребляет 4 ГБ ОЗУ в работе, 1 ядро. 3 копии.
- Фронтенд обрабатывает внешние запросы быстро, отдавая статику. Потребляет не более 50 МБ ОЗУ на каждый экземпляр, 0.2 ядра. 5 копий.
- Бекенд потребляет 600 МБ ОЗУ и по 1 ядру на копию. 10 копий.
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.
План расчета
- Сначала сделайте расчет всех необходимых ресурсов.
- Затем прикиньте количество рабочих нод, которые справятся с такой нагрузкой.
- Добавьте к полученным цифрам запас, который учитывает выход из строя как минимум одной ноды.
- Добавьте служебные ресурсы к нодам. Помните, что для разных типов нод требовния к ресурсам разные.
- Рассчитайте итоговые цифры.
- В результате должно быть указано количество нод и их параметры.
-
Рассчитаем необходимый минимум рабочей ноды:
- База данных 3*(4RAM+1CPU)=12RAM+3CPU
- Кеш 3*(4RAM+1CPU)=12RAM+3CPU
- Фронт 5*(0.05RAM+0.2CPU)=0.25RAM+1CPU
- Бек 10*(0.6RAM+1CPU)=6RAM+10CPU
Итого: 30.25RAM + 17CPU для request resources. Заложим запас на рост нагрузки ~20%, итого: 37RAM + 20CPU.
-
С такой нагрузкой могут справится 2 рабочие ноды по 32RAM и 12CPU c учетом служебной нагрузки рабочих нод (1RAM + 1CPU).
-
С учетом того, что по ТЗ необходимо обеспечить резервирование рабочей ноды с помощью одной дополнительной ВМ, получаем 3 ноды по 32RAM и 12CPU.
-
см. п.2.
-
Итоговые цифры для развертывания кластера Kubernetes указаниы ниже. Для мастер ноды взята фактически минимальная возможная конфигурация (решил расширить обьем RAM до 4Gb).
ControlPlane: 3 ноды по 4RAM и 2CPU
Worker: 3 ноды по 32RAM и 12CPU
PS: Формально за служебную нагрузку взяты минимальные вычислительные ресурсы, которые требуются для развертывания рабочей и мастер ноды. Думаю это вполне корректно для оценочного рассчета необходимых ресурсов для развертывания кубер-кластера.