Сведения о узлах кластера GitHub Enterprise Server
Каждый узел в кластере GitHub Enterprise Server — это виртуальная машина, которая запускает программное обеспечение GitHub Enterprise Server. Перед развертыванием кластера можно просмотреть требования к оборудованию, необходимые службы и рекомендации по проектированию.
Примечание. Кластеризация GitHub Enterprise Server должна быть настроена с помощью протокола HTTPS.
Требования к аппаратному обеспечению
Каждый узел должен иметь корневой том, а также отдельный том данных. Ниже приведены минимальные рекомендации. В зависимости от шаблона использования может потребоваться больше ресурсов, таких как активность пользователей и выбранные интеграции.
Службы | Минимальная необходимая память | Минимальное свободное место на томе данных, необходимое |
---|---|---|
job-server ,memcache-server ,web-server | 14 ГБ | 1 ГБ |
consul-server ,mysql-server ,redis-server | 14 ГБ | 10 ГБ |
git-server ,metrics-server ,pages-server ,storage-server | 14 ГБ | 10 ГБ |
elasticsearch-server | 14 ГБ | 10 ГБ |
Службы, необходимые для кластеризации
GitHub Enterprise Server состоит из набора служб. В кластере эти службы выполняются между несколькими узлами, а экземпляр балансирует запросы между узлами. Экземпляр автоматически сохраняет избыточные копии данных на отдельных узлах. Большинство служб равны одноранговые с другими экземплярами одной и той же службы. Исключениями этого распределения являются mysql-server
службы и redis-server
службы, которые работают с одним первичным узлом с одним или несколькими узлами реплики.
Для обеспечения адекватной избыточности используйте эти минимальные узлы, на которых запущена каждая из служб.
Примечание. Требования к масштабированию среды зависят от многих факторов, включая размер и количество репозиториев, количество пользователей и общее использование.
Пример конфигурации кластера
В следующем примере показана минимальная конфигурация кластера, которая включает 11 узлов, выполняющих необходимые службы.
Уровни | Службы | Минимальные необходимые узлы |
---|---|---|
Внешний интерфейс | job-server ,memcache-server ,web-server | 2 |
База данных | consul-server ,mysql-server ,redis-server | 3 |
Хранилище | git-server ,metrics-server ,pages-server ,storage-server | 3 |
Поиск (Search) | elasticsearch-server | 3 |
Рекомендации по проектированию кластеров
Кластеризация позволяет службам, составляющим GitHub Enterprise Server, масштабироваться независимо друг от друга. Такие гибкие возможности можно использовать для проектирования и реализации кластера, который соответствует требованиям к масштабированию для различных организаций. Например, некоторым организациям может потребоваться больше пропускной способности хранилища для крупных или регулярных выборок, однако объем потребления ресурсов веб-сервера может быть относительно низким. В другой организации может быть высокая производительность при меньшем объеме ресурсов хранилища, однако требуется много узлов, где запущен pages-server
или elasticsearch-server
. Возможно множество различных комбинаций. Обратитесь к своему менеджеру по работе с клиентами, чтобы определить оптимальную конфигурацию кластера для конкретных потребностей.
- Распределите избыточные узлы по различным независимым единицам оборудования. При совместном использовании ресурсов ЦП, памяти или устройств хранения снижается производительность и добавляются отдельные точки отказа. Общие сетевые компоненты также могут снижать пропускную способность и повышать риск потери соединения в случае сбоя.
- Используйте быстрое хранение. Сети хранения данных (SAN) зачастую оптимизированы для максимального потребления ресурсов пространства, доступности и отказоустойчивости, а не для абсолютной пропускной способности. Кластеризация GitHub Enterprise Server обеспечивает избыточность и доступность и оптимальную производительность при использовании максимально быстрого хранилища. Рекомендуется использовать локальное хранилище SSD.