Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

Cluster initialisieren

Ein GitHub Enterprise Server-Cluster muss mit einer Lizenz eingerichtet und mithilfe der Verwaltungsshell (SSH) initialisiert werden.

Informationen zur Initialisierung eines Clusters

Die Clustertopologie für GitHub Enterprise Server ermöglicht eine horizontale Skalierung für Unternehmen mit Zehntausenden von Entwickler*innen. GitHub empfiehlt Clustering, wenn bei Verwendung eines einzelnen primären Knotens regelmäßig eine Ressourcenüberlastung auftreten würde. Das Clustering erfordert eine sorgfältige Planung und zusätzlichen Verwaltungsaufwand. Weitere Informationen findest du unter Informationen zu Clustering.

Um einen Cluster in deiner Umgebung bereitzustellen, musst du GitHub Enterprise Server installieren, eine clusterfähige Lizenz hochladen und dann den ersten Knoten konfigurieren und mit einer Konfigurationsdatei initialisieren.

Hinweis: GitHub Enterprise Server-Clustering muss mit HTTPS konfiguriert werden.

GitHub Enterprise Server installieren

  1. Stelle auf jedem Clusterknoten GitHub Enterprise Server bereit, und installiere es. Weitere Informationen findest du unter GitHub Enterprise Server-Instanz einrichten.
  2. Konfiguriere mithilfe der Verwaltungsshell oder DHCP nur die IP-Adresse jedes Knotens. Konfiguriere keine anderen Einstellungen.

Ersten Knoten konfigurieren

  1. Stelle eine Verbindung mit dem Knoten her, der in cluster.conf als primäre MySQL-Instanz gekennzeichnet wird. Weitere Informationen findest du unter Cluster initialisieren.
  2. Wechsle in deinem Webbrowser zu https://<ip address>:8443/setup/.
  3. Lade an der Eingabeaufforderung Deine Lizenzdatei hoch, und lege das Passwort für die Managementkonsole fest. Weitere Informationen findest du unter Verwalten deiner Lizenz für GitHub Enterprise.
  4. Konfiguriere und speichere deine gewünschten Einstellungen in der Verwaltungskonsole.
  5. Die Instanz wird automatisch neu gestartet.

Cluster initialisieren

Um den Cluster zu initialisieren, benötigst du eine Clusterkonfigurationsdatei (cluster.conf). Weitere Informationen findest du unter Cluster initialisieren.

  1. Führe auf dem ersten Knoten, der konfiguriert wurde, ghe-cluster-config-init aus. Dadurch wird der Cluster initialisiert, wenn in der Clusterkonfigurationsdatei nicht konfigurierte Knoten vorhanden sind.
  2. Führe aus ghe-cluster-config-apply. Dieser Befehl validiert die Datei cluster.conf, wendet die Konfiguration auf jede Knotendatei an und lädt die konfigurierten Dienste auf jeden Knoten.

Um den Status eines ausgeführten Clusters zu überprüfen, verwende den Befehl ghe-cluster-status.

Informationen zur Clusterkonfigurationsdatei

Die Clusterkonfigurationsdatei (cluster.conf) definiert die Knoten im Cluster und die von ihnen ausgeführten Dienste. Weitere Informationen findest du unter Informationen zu Clusterknoten.

Diese cluster.conf-Beispieldatei definiert einen Cluster mit 11 Knoten.

  • Zwei Knoten mit dem Namen ghes-front-end-node-\* führen die für die Reaktion auf Clientanforderungen zuständigen Dienste aus
  • Drei Knoten mit dem Namen ghes-database-node-\* führen Dienste aus, die für die Speicherung, den Abruf und die Replikation von Datenbankdaten verantwortlich sind
  • Drei Knoten mit dem Namen ghes-search-node-\* führen Dienste aus, die für die Suchfunktionalität verantwortlich sind
  • Drei Knoten mit dem Namen ghes-storage-node-\* führen Dienste aus, die für die Speicherung, den Abruf und die Replikation von Daten verantwortlich sind

Die Namen der Knoten können beliebige gültige Hostnamen sein. Die Namen sind als Hostnamen jedes Knotens festgelegt und werden auf jedem Knoten zu /etc/hosts hinzugefügt, damit die Knoten untereinander lokal auflösbar sind.

Gib den ersten Clusterknoten an, den du über mysql-server und mysql-master als primär MySQL-Instanz konfiguriert hast.

[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

Erstelle die Datei /data/user/common/cluster.conf auf dem konfigurierten ersten Knoten. Beispielsweise gilt bei Verwendung von vim:

ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf