Предварительная версия. Функциональность может измениться, но основные возможности сохранятся. Совместимость с будущими версиями может потребовать ручных действий по миграции.
Масштабирование основано на параметре CodeInstance scaling.targetUsercount — в зависимости от его значения модуль
изменяет
HPA, PDB, запросы/лимиты по CPU и памяти.
Внимание! Не рекомендуется использовать любые экземпляры “burstable” в облачной инфраструктуре из-за непостоянной производительности.
Архитектурная справка
10 Users
Простая инсталляция без HА-режима. Подходит для ознакомительного режима работы. В такой инсталляции мы не гарантируем отказоустойчивость или способность выдержать какую-то нагрузку
Таблица потребляемых ресурсов
Расчет приводится на базе ожидаемого количества пользователей
В таблице ниже приведены ресурсы, требуемые для развертывания 1 копии каждого компонента. При установке в режиме высокой доступности планируйте как минимум удвоенное количество ресурсов
| Users/Component | 100 | 300 | 500 | 1000 | 3000 | 5000 |
|---|---|---|---|---|---|---|
| Webservice default | 2CPU / 4Gb 2 воркера, 8 тредов |
3CPU / 6Gb 3 воркера, 8 тредов |
3CPU / 6Gb 3 воркера, 8 тредов |
4CPU / 8Gb 4 воркера, 8 тредов |
6CPU / 12Gb 6 воркеров, 8 тредов |
8CPU / 16Gb 8 воркеров, 8 тредов |
| Webservice internal | 2CPU / 4Gb 2 воркера, 8 тредов |
2CPU / 4Gb 2 воркера, 8 тредов |
2CPU / 4Gb 2 воркера, 8 тредов |
2CPU / 4Gb 2 воркера, 8 тредов |
3CPU / 6Gb 3 воркера, 8 тредов |
4CPU / 8Gb 4 воркеров, 8 тредов |
| Sidekiq | 1CPU / 1.5Gb 1.5 CPU / 3Gb |
1CPU / 1.5Gb 1.5CPU / 3Gb |
1CPU / 1.5Gb 1.5CPU / 3Gb |
1CPU / 1.5Gb 1.5CPU / 3Gb |
1CPU / 1.5Gb 1.5CPU / 3Gb |
1CPU / 1.5Gb 1.5CPU / 3Gb |
| Shell | 0.01CPU / 24Mb 0.5 CPU / 600Mb |
0.01CPU / 24Mb 0.5 CPU / 600Mb |
0.01CPU / 24Mb 0.5 CPU / 600Mb |
0.01CPU / 24Mb 0.5 CPU / 600Mb |
0.01CPU / 24Mb 0.5CPU / 600Mb |
0.01CPU / 24Mb 0.5CPU / 600Mb |
| Toolbox | 0.05CPU / 350Mb 1 CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
| Praefect | 0.1CPU / 128Mb 0.3 CPU / 600Mb |
0.1CPU / 128Mb 0.3CPU / 600Mb |
0.1CPU / 128Mb 0.3CPU / 600Mb |
0.1CPU / 128Mb 0.3CPU / 600Mb |
0.1CPU / 128Mb 0.6CPU / 1200Mb |
0.1CPU / 128Mb 2CPU / 2Gb |
| Gitaly | 1.5CPU / 2Gb 1.5CPU / 2Gb |
1.5CPU / 2Gb 1.5CPU / 2Gb |
1.5CPU / 2Gb 1.5CPU / 2Gb |
2CPU / 4Gb 2CPU / 4Gb |
6CPU / 16Gb 6CPU / 16Gb |
8CPU / 30Gb 8CPU / 30Gb |
| MRA | 0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
| Code-operator | 0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
| Registry* | 1 CPU/ 1Gb 1.5CPU / 2Gb |
1CPU / 1Gb 1.5CPU / 2Gb |
1 CPU/ 1Gb 1.5CPU / 2Gb |
1CPU / 1Gb 1.5CPU / 2Gb |
1CPU / 1Gb 1.5CPU / 2Gb |
2CPU / 4Gb 4CPU / 8Gb |
| Pages* | 0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 2Gb 2CPU / 4Gb |
| Mailroom* | 0.05CPU / 150Mb 0.25CPU / 0.5Gb |
0.05CPU / 150Mb 0.25 CPU / 0.5Gb |
0.05CPU / 150Mb 0.25CPU / 0.5Gb |
0.05CPU / 150Mb 0.25CPU / 0.5Gb |
0.05CPU / 150Mb 0.25CPU / 0.5Gb |
0.05CPU / 150Mb 0.25CPU / 0.5Gb |
| HAProxy* | 0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
| Всего(Мин компоненты) | 7CPU / 13Gb 11CPU / 17Gb |
8CPU / 15.5Gb 12CPU / 19.5Gb |
8CPU / 15.5Gb 12CPU / 19.5Gb |
9.5CPU / 17.5Gb 13CPU / 21.5Gb |
16CPU / 36.5Gb 20.5CPU / 42Gb |
18.5CPU / 56Gb 21.5CPU / 63Gb |
| Всего(Все компоненты) | 9CPU / 15Gb 14CPU / 22Gb |
10CPU / 17.5Gb 15CPU / 24Gb |
10CPU / 17.5Gb 15CPU / 24Gb |
11.5CPU / 19.5Gb 16CPU / 26Gb |
18.5CPU / 39Gb 24.5CPU / 47Gb |
25CPU / 62.5Gb 33.5CPU / 75Gb |
Опциональные компоненты отмечены в таблице символом
*Первая строка каждой ячейки отражаетrequestsпо ресурсам, вторая -limits
Автоматическое масштабирование
Большинство компонентов поддерживают горизонтально масштабирование когда HA-mode включен. Эти компоненты имеют не менее 2 реплик. Максимальное количество реплик указано в таблице ниже:
| Users/Component | 1000 | 3000 | 5000 |
|---|---|---|---|
| Webservice default | 3 | 4 | 6 |
| Webservice internal | 3 | 3 | 3 |
| Sidekiq | 4 | 8 | 12 |
| Shell | 4 | 6 | 12 |
| Registry* | 10 | 10 | 10 |
| Pages* | 3 | 6 | 6 |
Опциональные компоненты отмечены в таблице символом
*
Настройка масштабирования ресурсов хранилища Git
Если вы видите непустую таблицу ‘OOM events’ в Grafana или срабатывающий алерт GitalyCgroupMemoryOOM в Prometheus,
вероятно, вам нужно скорректировать ресурсы памяти и CPU для Gitaly. Увеличьте значения spec.gitData.resources в вашей
конфигурации (например, установите память на 16Gi и CPU на 4). Примените изменения и наблюдайте за Gitaly.
При масштабировании Git-хранилища важно учитывать следующий приоритет параметров:
- Явно заданные ресурсы в
spec.gitData.resources - Значение
spec.scaling.targetUserCount(используется для автоматического расчёта ресурсов по таблице)
Пример 1:
`spec.gitData.resources.cpu`: 1
`spec.gitData.resources.memory`: 1Gi
`spec.scaling.targetUserCount`: 3000
Согласно таблице рекомендуемых ресурсов (описанной выше), ожидаемый результат при targetUserCount = 3000:
memory: 4Gicpu: 2
Однако из-за приоритета явно заданных значений фактический результат будет:
memory: 1Gicpu: 1
💡 Примечание: если явно указан параметр в
spec.gitData.resources, он всегда имеет приоритет над автоматическим расчётом.
Пример 2:
`spec.gitData.resources.cpu`: 5
`spec.gitData.resources.memory`: ***намеренно не указан***
`spec.scaling.targetUserCount`: 3000
Согласно таблице, ожидаемый результат при targetUserCount = 3000:
memory: 4Gicpu: 2
Но поскольку:
spec.gitData.resources.cpuзадан явно → используется значение 5,spec.gitData.resources.memoryне указан → используется значение из таблицы (4Gi),
фактический результат будет:
memory: 4Gi (из таблицы)cpu: 5 (изspec.gitData.resources.cpu)
💡 Важно: если какой-либо ресурс (CPU или память) не указан в
spec.gitData.resources, для него применяется значение из таблицы масштабирования.