Skip to main content

Enterprise Server 3.15 ist derzeit als Release Candidate verfügbar.

Hochverfügbarkeitsreplikat erstellen

Bei einer Aktiv/Passiv-Konfiguration ist die Replikatappliance eine redundante Kopie der primären Appliance. Wenn die primäre Appliance ausfällt, ermöglicht der Hochverfügbarkeitsmodus dem Replikat, als primäre Appliance zu fungieren, was eine nur kurzzeitige Dienstunterbrechung ermöglicht.

Note

Für GitHub Enterprise Server sind maximal 8 Hochverfügbarkeitsreplikate (sowohl passive als auch aktive/geo-Replikate sowie Repository-Cache-Instanzen) zulässig.

Hochverfügbarkeitsreplikat erstellen

  1. 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 findest du unter GitHub Enterprise Server-Instanz einrichten.

  2. 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 findest du unter Netzwerkports.

  3. Navigiere in einem Browser zur IP-Adresse der neuen Replikat-Appliance, und lade deine GitHub Enterprise-Lizenz hoch.

  4. Lege ein Administratorpasswort fest, das dem Passwort auf der primären Appliance entspricht, und setze den Vorgang fort.

  5. Klicken Sie auf Replikatknoten erstellen.

  6. Gib unter „Add new SSH key“ (Neuen SSH-Schlüssel hinzufügen) deinen SSH-Schlüssel ein.

  7. Klicke auf Schlüssel hinzufügen.

  8. Stelle mittels SSH eine Verbindung zur IP-Adresse der Replikat-Appliance her.

    ssh -p 122 admin@REPLICA_IP
    
  9. Führe zum Generieren eines Schlüsselpaars zur Replikation den Befehl ghe-repl-setup mit der IP-Adresse der primären Appliance aus, und kopiere den zurückgegebenen öffentlichen Schlüssel.

    ghe-repl-setup PRIMARY_IP
    
  10. 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.

  11. Führe erneut ghe-repl-setup aus, 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
    
  12. Um die Replikation der Datenspeicher zu starten, verwende den Befehl ghe-repl-start.

    ghe-repl-start
    

    Warnung: ghe-repl-start verursacht einen kurzen Ausfall des primären Servers. Währenddessen wird Benutzern möglicherweise ein interner Serverfehler angezeigt. Um eine benutzerfreundlichere Meldung bereitzustellen, führe ghe-maintenance -s auf dem primären Knoten aus, bevor du ghe-repl-start auf dem Replikatknoten ausführest, um die Appliance in den Wartungsmodus zu versetzen. Nachdem die Replikation gestartet wurde, deaktiviere den Wartungsmodus mit ghe-maintenance -u. Die Git-Replikation wird nicht fortgesetzt, während sich der primäre Knoten im Wartungsmodus befindet.

  13. Führe den Befehl ghe-repl-status aus, um den Status des Replikationskanals jedes Datenspeichers zu überprüfen.

    ghe-repl-status
    

Replikate der Geo-Replikation erstellen

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 diesen 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 findest du unter Konfigurieren eines Repository-Caches.

  1. Erstelle das erste Replikat genauso wie bei einer Standardkonfiguration mit zwei Knoten, indem du ghe-repl-setup für das erste Replikat ausführst.

    (replica1)$ ghe-repl-setup PRIMARY_IP
    (replica1)$ ghe-repl-start
    
  2. Erstelle ein zweites Replikat, und verwende den Befehl ghe-repl-setup --add. Das --add Flag 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
    
  3. 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 entsprechenden Werte sind beliebig, sie müssen sich nur voneinander unterscheiden. Führe den Befehl ghe-repl-node fü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 --datacenter und --active gleichzeitig festlegen.

  4. 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 --active den aktiven Modus oder mit dem Flag --inactive den inaktiven Modus.

    Auf dem ersten Replikat:

    (replica1)$ ghe-repl-node --active
    

    Auf dem zweiten Replikat:

    (replica2)$ ghe-repl-node --active
    
  5. Verwende zum Anwenden der Konfiguration den Befehl ghe-config-apply für das primäre Replikat.

    (primary)$ ghe-config-apply
    

DNS für Geo-Replikation konfigurieren

Konfiguriere Geo DNS mit den IP-Adressen auf der primären Instanz und auf den 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 Themen