Подводя итог
Учитывая все вышесказанное, вам нужно сделать следующее, чтобы найти оптимальные значения:
Количество контейнеров на ноде = Корень квадратный из количества контейнеров, округленный до целого в меньшую сторону, при условии, что количество контейнеров на ноду не превышает рекомендуемое значение
Количество нод = Количество контейнеров/Количество контейнеров на ноду
Запас ресурсов = Количество контейнеров на ноду * Максимальное количество ресурсов на контейнер/(Количество нод - Максимальное допустимое количество отключенных нод)
Ресурсы ноды = максимальное кол-во ресурсов, требуемое контейнеру * кол-во контейнеров на ноде + запас ресурсов + ресурсные требования системных компонент Kubernetes
Чтобы понять, как это работает, давайте рассмотрим пример.
Давайте скажем, что нам нужны два пула нод:
Микросервисы - 200 микросервисов с 0.1 CPU и 100MB RAM, требуемых на контейнер.
Базы данных - 20 PostgreSQL баз данных с 2 CPU и 4GB RAM, требуемых на контейнер.
Предположим, что компоненты Kube system будут потреблять 0.5 CPU и 0.5 GB RAM и мы рассчитываем, что только одна нода может быть недоступна за раз.
Для микросервисного пула:
Ближайшее меньший целый квадрат числа = 196
Кол-во контейнеров на ноду = sqrt(196) = 14
Кол-во нод = 200/14 = 14.28 ~ 15
Максимальное допустимое число неработающих нод = 1
Запас ресурсов = 14 * (0.1 core + 100MB RAM)/(15–1) = 0.1 core + 100MB RAM
Ресурсы ноды = (0.1 core + 100MB RAM) * 14 + 0.1 core + 100MB RAM + 0.5 cores + 500MB RAM = 2 core + 2GB RAM
Для пула баз данных:
Ближайшее меньший целый квадрат числа = 16
Кол-во контейнеров на ноду = sqrt(16) = 4
Кол-во нод = 20/4 = 5
Максимальное допустимое число неработающих нод = 1
Запас ресурсов = 4 * (2 core + 4GB RAM)/(5–1) = 2 core + 4GB RAM
Ресурсы ноды = (two core + 4GB RAM) * 4 + 2 core + 4GB RAM + 0.5 cores + 0.5 GB RAM = 10.5 core + 20.5 GB RAM
Следовательно, для микросервисного пула вам будет нужно 15 воркер нод с 2 ядрами и 2 GB RAM каждая, и для пула БД вам нужно будет 5 воркер нод с 10.5 ядрами и 20.5 GB RAM каждая. Для простоты можно округлить числа до ближайшей большей доступной конфигурации машины.
*️⃣3/3
#лонгрид
Post #470
1.24K
- 🔥 13
- 👍 8
- 🤯 1