Масштабирование основано на параметре ModuleConfig targetUsercount
— в зависимости от его значения модуль изменяет
HPA, PDB, запросы/лимиты по CPU и памяти.
Внимание. Не рекомендуется использовать любые экземпляры
burstable
в облачной инфраструктуре из-за непостоянной производительности.
Архитектурная справка
-
10 пользователей:
Простая инсталляция без режима высокой доступности (HA). Подходит для ознакомительного использования. В такой инсталляции не гарантируется отказоустойчивость или способность выдерживать нагрузку.
-
100 пользователей:
Приблизительная нагрузка:
- API: 2 RPS.
- Web: 1 RPS.
- Git (Pull): 1 RPS.
- Git (Push): 1 RPS.
Параметры установки:
- Deckhouse HA: не требуется.
- Узлы Kubernetes: минимум 2 узла.
Общие требования (без Gitaly):
- 6 vCPU.
- Память: минимум 14 ГБ.
Компоненты:
- Веб-сервис: 0.6 vCPU, 5 ГБ памяти, HPA от 1 до 2.
- Sidekiq: 1.8 vCPU, 4 ГБ памяти, HPA от 1 до 2.
- Shell: 0.03 vCPU, 25 МБ памяти, HPA от 1 до 2.
- Pages: 1.8 vCPU, 4 ГБ памяти, HPA от 1 до 2.
- Praefect: 0.3 vCPU, 600 МБ памяти.
- Gitaly (1 узел): 3 vCPU, 7 ГБ памяти.
-
1000 пользователей:
Приблизительная нагрузка:
- API: 20 RPS.
- Web: 2 RPS.
- Git (Pull): 2 RPS.
- Git (Push): 1 RPS.
Параметры установки:
- Deckhouse HA: не требуется.
- Узлы Kubernetes: минимум 3 узла.
Общие требования (без Gitaly):
- 12 vCPU.
- Память: от 18 ГБ до 32 ГБ.
Компоненты:
- Веб-сервис: 6 vCPU, 9 ГБ памяти, лимит 12 ГБ, HPA от 2 до 3.
- Sidekiq: 2.7 vCPU, 6 ГБ памяти, лимит 12 ГБ, HPA от 1 до 3.
- Shell: 0.03 vCPU, 150 МБ памяти, лимит 750 МБ, HPA от 2 до 3.
- Pages: 2.7 vCPU, 3 ГБ памяти, лимит 6 ГБ, HPA от 2 до 3.
- Praefect: 0.3 vCPU, 600 МБ памяти.
- Gitaly (1 узел): 3 vCPU, 7 ГБ памяти.
-
3000 пользователей:
Приблизительная нагрузка:
- API: 60 RPS.
- Web: 6 RPS.
- Git (Pull): 6 RPS.
- Git (Push): 1 RPS.
Параметры установки:
- Deckhouse HA: требуется.
- Узлы Kubernetes: минимум 4–5 узлов.
Общие требования (без Gitaly):
- 29 vCPU.
- Память: от 48 ГБ до 82 ГБ.
Компоненты:
- Веб-сервис: 16 vCPU, 20 ГБ памяти, лимит 28 ГБ, HPA от 3 до 4.
- Sidekiq: 7.2 vCPU, 16 ГБ памяти, лимит 32 ГБ, HPA от 6 до 8.
- Shell: 0.25 vCPU, 400 МБ памяти, лимит 2 ГБ, HPA от 4 до 8.
- Pages: 5.4 vCPU, 6 ГБ памяти, лимит 18 ГБ, HPA от 3 до 6.
- Praefect: 0.3 vCPU, 600 МБ памяти.
- Gitaly (1 узел): 3 vCPU, 7 ГБ памяти.
-
5000 пользователей:
Приблизительная нагрузка:
- API: 100 RPS.
- Web: 10 RPS.
- Git (Pull): 10 RPS.
- Git (Push): 2 RPS.
Параметры установки:
- Deckhouse HA: требуется.
- Узлы Kubernetes: минимум 6 узлов.
Общие требования (без Gitaly):
- 52 vCPU.
- Память: от 78 ГБ до 130 ГБ.
Компоненты:
- Веб-сервис: 36 vCPU, 45 ГБ памяти, лимит 63 ГБ, HPA от 7 до 9.
- Sidekiq: 7.2 vCPU, 16 ГБ памяти, лимит 32 ГБ, HPA от 6 до 8.
- Shell: 1 vCPU, 500 МБ памяти, лимит 2.5 ГБ, HPA от 6 до 10.
- Pages: 7.2 vCPU, 16 ГБ памяти, лимит 32 ГБ, HPA от 4 до 8.
- Praefect: 0.3 vCPU, 600 МБ памяти.
- Gitaly (1 узел): 3 vCPU, 7 ГБ памяти.
Примечания
- Максимальное потребление указано на основе лимитов памяти, заданных в модуле.
- Требования к Gitaly зависят от уровня отказоустойчивости, необходимого для модуля.
Настройка хранилища Gitaly
Если вы видите непустую таблицу ‘OOM events’ в Grafana или срабатывающий алерт GitalyCgroupMemoryOOM
в Prometheus, вероятно, вам нужно скорректировать ресурсы памяти и CPU для Gitaly. Увеличьте значения instanceSpec.gitData.resources
в вашей конфигурации (например, установите память на 16Gi и CPU на 4). Примените изменения и наблюдайте за Gitaly.