Hinweis
Für GitHub Enterprise Server sind maximal acht Replikate mit Hochverfügbarkeit (sowohl passive als auch aktive/Georeplikate sowie Repositorycacheinstanzen) zulässig.
Erstellung eines hochverfügbaren Replikats
-
Richte eine neue GitHub Enterprise Server-Appliance auf deiner gewünschten Plattform ein. Die Replikat-Appliance sollte die CPU-, RAM- und Speichereinstellungen der primären Appliance spiegeln. Du solltest die Replikat-Appliance in einer unabhängigen Umgebung installieren. Die zugrunde liegenden Hardware-, Software und Netzwerkkomponenten sollten von denen der primären Appliance isoliert sein. Wenn du einen Cloud-Anbieter verwendest, solltest du eine separate Region oder Zone verwendest. Weitere Informationen finden Sie unter Einrichten einer GitHub Enterprise Server-Instanz.
-
Stelle sicher, dass die neue Appliance mit allen übrigen Appliances in dieser Hochverfügbarkeitsumgebung über die Ports 122/TCP und 1194/UDP kommunizieren kann. Weitere Informationen finden Sie unter Netzwerkports.
-
Navigiere in einem Browser zur IP-Adresse der neuen Replikat-Appliance, und lade deine GitHub Enterprise-Lizenz hoch.
-
Lege ein Administratorpasswort fest, das dem Passwort auf der primären Appliance entspricht, und setze den Vorgang fort.
-
Klicke auf Create a replica node.
-
Gib unter „Add new SSH key“ (Neuen SSH-Schlüssel hinzufügen) deinen SSH-Schlüssel ein.
-
Klicke auf Schlüssel hinzufügen.
-
Stelle mittels SSH eine Verbindung zur IP-Adresse der Replikat-Appliance her.
ssh -p 122 admin@REPLICA_IP -
Führe zum Generieren eines Schlüsselpaars zur Replikation den Befehl
ghe-repl-setupmit der IP-Adresse der primären Appliance aus, und kopiere den zurückgegebenen öffentlichen Schlüssel.ghe-repl-setup PRIMARY_IP -
Um den öffentlichen Schlüssel der Liste autorisierter Schlüssel auf der primären Appliance hinzuzufügen, navigiere zu
https://PRIMARY-HOSTNAME/setup/settings, und füge der Liste den Schlüssel hinzu, den du vom Replikat kopiert hast. -
Führe erneut
ghe-repl-setupaus, um die Verbindung mit dem primären Replikat zu überprüfen und den Replikatmodus für das neue Replikat zu aktivieren.ghe-repl-setup PRIMARY_IP -
Um die Replikation der Datenspeicher zu starten, verwende den Befehl
ghe-repl-start.ghe-repl-startWarnung
Um einen unterbrechungsfreien Betrieb bei der Einrichtung eines neuen Replikats sicherzustellen, führen Sie
ghe-config-applyzwischenghe-repl-setupundghe-repl-startaus. Dies ermöglicht es dem primären Server, während des Replikationssetupprozesses verfügbar zu bleiben. -
Führe den Befehl
ghe-repl-statusaus, um den Status des Replikationskanals jedes Datenspeichers zu überprüfen.ghe-repl-status
Erstellen von Geo-Replikationsreplikaten
Diese Beispielkonfiguration verwendet eine primäre Instanz und zwei Replikate, die sich in drei unterschiedlichen geografischen Regionen befinden. Obwohl sich die drei Knoten in unterschiedlichen Netzwerken befinden können, müssen alle Knoten über alle anderen Knoten zugänglich sein. Die erforderlichen Verwaltungsports sollten mindestens für alle anderen Knoten geöffnet sein. Weitere Informationen zu den Portanforderungen findest du unter Netzwerkports.
Die Latenz zwischen primären und Replikatknoten muss kleiner als 70 Millisekunden sein. Es wird nicht empfohlen, eine Firewall zwischen den Netzwerken der Knoten zu konfigurieren. Wenn die Latenz mehr als 70 Millisekunden beträgt, empfehlen wir stattdessen Cachereplikatknoten. Weitere Informationen finden Sie unter Konfigurieren eines Repository-Caches.
-
Erstelle das erste Replikat genauso wie bei einer Standardkonfiguration mit zwei Knoten, indem du
ghe-repl-setupfür das erste Replikat ausführst.(replica1)$ ghe-repl-setup PRIMARY_IP (replica1)$ ghe-repl-start -
Erstelle ein zweites Replikat, und verwende den Befehl
ghe-repl-setup --add. Das--addFlag verhindert, dass die vorhandene Replikationskonfiguration überschrieben wird, und fügt der Konfiguration das neue Replikat hinzu.(replica2)$ ghe-repl-setup --add PRIMARY_IP (replica2)$ ghe-repl-start -
Standardmäßig sind die Replikate für dasselbe Rechenzentrum konfiguriert und versuchen nun, ein Seeding von einem vorhandenen Knoten im selben Rechenzentrum durchzuführen. Konfiguriere die Replikate für unterschiedliche Rechenzentren, indem du für die Rechenzentrumsoption einen anderen Wert festlegst. Die spezifischen Werte können beliebig gewählt werden, solange sie sich voneinander unterscheiden. Führe den Befehl
ghe-repl-nodefür jeden Knoten aus, und gib das Rechenzentrum an.Auf der primären Instanz:
(primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]Auf dem ersten Replikat:
(replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]Auf dem zweiten Replikat:
(replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]Tipp
Du kannst die Optionen
--datacenterund--activegleichzeitig festlegen. -
Ein aktiver Replikatknoten speichert Kopien der Appliance-Daten und verarbeitet Anforderungen von Endbenutzern. Ein inaktiver Knoten speichert Kopien der Appliance-Daten, kann die Anforderungen von Endbenutzern jedoch nicht verarbeiten. Aktiviere mit dem Flag
--activeden aktiven Modus oder mit dem Flag--inactiveden inaktiven Modus.Auf dem ersten Replikat:
(replica1)$ ghe-repl-node --activeAuf dem zweiten Replikat:
(replica2)$ ghe-repl-node --active -
Verwenden Sie zum Anwenden der Konfiguration den Befehl
ghe-config-applyauf dem primären Server.(primary)$ ghe-config-apply
DNS für Geo-Replikation konfigurieren
Konfiguriere Geo DNS mit den IP-Adressen der primären und der Replikatknoten. Du kannst auch einen DNS CNAME für den primären Knoten erstellen (z. B. primary.github.example.com), um über SSH auf den primären Knoten zuzugreifen oder um ihn über backup-utils zu sichern.
Zu Testzwecken kannst du der Datei hosts der lokalen Arbeitsstation Einträge hinzufügen (zum Beispiel /etc/hosts). Diese Beispieleinträge lösen Anforderungen für HOSTNAME in replica2 auf. Du kannst auf spezifische Hosts abzielen, indem du unterschiedliche Zeilen auskommentierst.
# <primary IP> HOSTNAME
# <replica1 IP> HOSTNAME
<replica2 IP> HOSTNAME
Weiterführende Lektüre
-
[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration) -
[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-geo-replication)