Skip to main content

Инициализация кластера

Кластер GitHub Enterprise Server нужно настроить с помощью лицензии и инициализировать посредством административной оболочки (SSH).

GitHub determines eligibility for clustering, and must enable the configuration for your instance's license. Clustering requires careful planning and additional administrative overhead. For more information, see "About clustering."

О инициализации кластера GitHub Enterprise Server

Чтобы развернуть кластер GitHub Enterprise Server в среде, необходимо установить GitHub Enterprise Server, отправить лицензию с поддержкой кластера, настроить первый узел и инициализировать узел с помощью файла конфигурации.

Примечание. Кластеризация GitHub Enterprise Server должна быть настроена с помощью протокола HTTPS.

Установка GitHub Enterprise Server

Чтобы начать настройку кластера, установите устройство GitHub Enterprise Server на виртуальной машине каждого узла, а затем настройте IP-адрес.

  1. На каждом узле кластера подготовьте и установите GitHub Enterprise Server. Дополнительные сведения см. в разделе "Настройка экземпляра GitHub Enterprise Server".
  2. Используя административную оболочку или DHCP, настройте только IP-адрес каждого узла. Не следует настраивать другие параметры.

Настройка первого узла

На узле, который будет работать в качестве основного узла MySQL, установите лицензию GitHub Enterprise Server .

  1. Подключитесь узлу, который будет назначен как основной сервер MySQL в cluster.conf. Дополнительные сведения см. в разделе "Инициализация кластера".
  2. В веб-браузере перейдите по адресу https://<ip address>:8443/setup/.
  3. В командной строке отправьте файл лицензии и задайте пароль консоли управления. Дополнительные сведения см. в разделе "Управление лицензией для GitHub Enterprise".
  4. В Консоль управления настройте и сохраните нужные параметры.
  5. Экземпляр будет перезапущен автоматически.

Инициализация кластера

Для инициализации кластера требуется файл конфигурации кластера (cluster.conf). Дополнительные сведения см. в разделе "Инициализация кластера".

  1. На первом настроенном узле выполните команду ghe-cluster-config-init. При этом кластер инициализируется, если в файле конфигурации кластера есть узлы, которые не были настроены.
  2. Запустите 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-\* службами запуска, отвечающими за хранение, извлечение и репликацию данных.

Имя узла может быть любым допустимым именем узла. Имена задаются как имена узла для каждого узла, а также добавляются в /etc/hosts на каждый узел, чтобы позволить разрешать узлы друг в друга.

Укажите первый узел кластера, который настроен как основной узел 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