Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-07-09. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

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

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

Кто может использовать эту функцию?

GitHub определяет право на кластеризация и должен включить конфигурацию лицензии вашего экземпляра. Кластеризация требует тщательного планирования и дополнительных административных накладных расходов. Дополнительные сведения см. в разделе Сведения о кластеризации.

О инициализации кластера 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-\* службами запуска, отвечающими за хранение, извлечение и репликацию данных.

Для каждого узла необходимо выбрать допустимое и уникальное имя узла и IPv4-адрес. Чтобы обеспечить локальное разрешение узлов друг другу, GitHub Enterprise Server добавит запись для имени /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