О инициализации кластера GitHub Enterprise Server
Чтобы развернуть кластер GitHub Enterprise Server в среде, необходимо установить GitHub Enterprise Server, отправить лицензию с поддержкой кластера, настроить первый узел и инициализировать узел с помощью файла конфигурации.
Примечание. Кластеризация GitHub Enterprise Server должна быть настроена с помощью протокола HTTPS.
Установка GitHub Enterprise Server
Чтобы начать настройку кластера, установите устройство GitHub Enterprise Server на виртуальной машине каждого узла, а затем настройте IP-адрес.
- На каждом узле кластера подготовьте и установите GitHub Enterprise Server. Дополнительные сведения см. в разделе Настройка экземпляра GitHub Enterprise Server.
- Используя административную оболочку или DHCP, настройте только IP-адрес каждого узла. Не следует настраивать другие параметры.
Настройка первого узла
На узле, который будет работать в качестве основного узла MySQL, установите лицензию GitHub Enterprise Server .
- Подключитесь узлу, который будет назначен как основной сервер MySQL в
cluster.conf
. Дополнительные сведения см. в разделе Инициализация кластера. - В веб-браузере перейдите по адресу
https://<ip address>:8443/setup/
. - В командной строке отправьте файл лицензии и задайте пароль консоли управления. Дополнительные сведения см. в разделе Управление лицензией для GitHub Enterprise.
- В Консоль управления настройте и сохраните нужные параметры.
- Экземпляр будет перезапущен автоматически.
Инициализация кластера
Для инициализации кластера требуется файл конфигурации кластера (cluster.conf
). Дополнительные сведения см. в разделе "Инициализация кластера".
- На первом настроенном узле выполните команду
ghe-cluster-config-init
. При этом кластер инициализируется, если в файле конфигурации кластера есть узлы, которые не были настроены. - Запустите
ghe-cluster-config-apply
. Это позволит проверить файлcluster.conf
, применить конфигурацию к каждому файлу узла и запустить настроенные службы на каждом узле.
Чтобы проверить состояние работающего кластера, используйте команду ghe-cluster-status
.
Сведения о файле конфигурации кластера
Файл конфигурации кластера (cluster.conf
) определяет узлы в кластере и службы, которые они выполняют.
Дополнительные сведения см. в разделе Сведения об узлах кластера.
В этом примере cluster.conf
определяется кластер с 11 узлами.
- Два узла, называемые
ghes-front-end-node-\*
службами запуска, отвечающими за реагирование на запросы клиентов. - Три узла, называемые
ghes-database-node-\*
службами запуска, отвечающими за хранение, извлечение и репликацию данных базы данных. - Три узла, называемые
ghes-search-node-\*
службами запуска, отвечающими за функции поиска. - Три узла, называемые
ghes-storage-node-\*
службами запуска, отвечающими за хранение, извлечение и репликацию данных.
Для каждого узла необходимо выбрать допустимое и уникальное имя узла и IPv4-адрес. Чтобы обеспечить локальное разрешение узлов друг другу, GitHub Enterprise Server добавит запись для имени /etc/hosts
узла каждого узла на каждом узле.
- Дополнительные сведения о допустимых именах узлов для GitHub Enterprise Serverсм. в разделе "Настройка имени узла для экземпляра".
- Каждый IPv4-адрес должен быть адресом в частной сети. См . статью RFC 1918 на веб-сайте IETF.
Укажите первый узел кластера, который настроен как основной узел MySQL, посредством mysql-server
и mysql-master
.
[cluster]
mysql-master = ghes-database-node-1
redis-master = ghes-database-node-1
primary-datacenter = primary
[cluster "ghes-front-end-node-1"]
hostname = ghes-front-end-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-front-end-node-2"]
hostname = ghes-front-end-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-database-node-1"]
hostname = ghes-database-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-2"]
hostname = ghes-database-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-3"]
hostname = ghes-database-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-search-node-1"]
hostname = ghes-search-node-1
ipv4 = 192.168.0.7
# ipv6 = fd12:3456:789a:1::7
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-2"]
hostname = ghes-search-node-2
ipv4 = 192.168.0.8
# ipv6 = fd12:3456:789a:1::8
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-3"]
hostname = ghes-search-node-3
ipv4 = 192.168.0.9
# ipv6 = fd12:3456:789a:1::9
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-storage-node-1"]
hostname = ghes-storage-node-1
ipv4 = 192.168.0.10
# ipv6 = fd12:3456:789a:1::10
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-2"]
hostname = ghes-storage-node-2
ipv4 = 192.168.0.11
# ipv6 = fd12:3456:789a:1::11
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-3"]
hostname = ghes-storage-node-3
ipv4 = 192.168.0.12
# ipv6 = fd12:3456:789a:1::12
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
Создайте файл /data/user/common/cluster.conf
на первом настроенном узле. Например, при выполнении команды vim
:
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf