Skip to main content

Erneutes Ausgleichen von Clusterworkloads

Du kannst erzwingen, dass dein GitHub Enterprise Server-Cluster Auftragszuordnungen für Workloads gleichmäßig auf den Knoten des Clusters verteilt.

Wer kann dieses Feature verwenden?

People with administrative SSH access to a GitHub Enterprise Server instance can rebalance cluster workloads on the instance.

GitHub bestimmt die Berechtigung zum Clustering und muss die Konfiguration für die Lizenz deiner Instanz aktivieren. Das Clustering erfordert eine sorgfältige Planung und zusätzlichen Verwaltungsaufwand. Weitere Informationen findest du unter Informationen zu Clustering.

Informationen zum Workloadausgleich für einen GitHub Enterprise Server-Cluster

Eine GitHub Enterprise Server-Instanz in einer Clusterkonfiguration weist jede Aufgabe einem Knoten entsprechend der Rolle des Knotens zu. Diese Zuweisung wird als Zuteilung bezeichnet.

Wenn ein Clusterknoten aufgrund eines Hardware- oder Softwarefehlers von anderen Knoten nicht erreichbar ist, erstellt deine Instanz eine neue Zuteilung, um Aufträge vom fehlerhaften Knoten an einen anderen Knoten zu verteilen, der die Workload verarbeiten kann. In einigen Situationen erfolgt diese Verteilung nicht automatisch, und ein einzelner Knoten kann mehr Aufträge als erwartet ausführen.

Du kannst Zuteilungen mithilfe des ghe-cluster-balance-Hilfsprogramms verwalten, das den Status vorhandener Zuteilungen anzeigen oder deine Instanz zum Ausgleich von Zuteilungen zwingen kann. Beispielsweise sollten Sie die Zuteilungen ausgleichen, nachdem Sie dem Cluster einen neuen Knoten hinzugefügt haben. Optional können Sie einen Standardausgleich planen.

Sie köönnen die folgenden Befehle über einen beliebigen Knoten in Ihrem Cluster ausführen, indem Sie die Verwaltungsshell verwenden. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).

Überprüfen der Verteilung von Clusteraufträgen

In einigen Fällen, z. B. bei Hardwarefehlern, migriert die zugrunde liegende Software, die Zuteilungen verwaltet, Aufgaben vom fehlerhaften Knoten zu einem fehlerfreien Knoten. Wenn der fehlerhafte Knoten wiederhergestellt wird, bleibt die Aufgabe möglicherweise dem wiederhergestellten Knoten zugewiesen, was zu einer ungleichmäßigen Auslastung führen kann. Das Risiko eines Auftragsfehlers kann sich erhöhen, wenn Zuteilungen nicht ausgeglichen sind und zusätzliche Knoten fehlschlagen. Du kannst die Verteilung der Zuteilungen mithilfe des ghe-cluster-balance status-Hilfsprogramms überprüfen.

  1. Führe zum Anzeigen einer Liste der Zuteilungen den folgenden Befehl aus. Das Hilfsprogramm zeigt fehlerfreie Zuteilungen in grün an. Wenn Aufträge nicht ordnungsgemäß verteilt sind, zeigt das Hilfsprogramm die Anzahl der Zuteilungen in rot an.

    Shell
    ghe-cluster-balance status
    
  2. Wenn ein Auftrag nicht ordnungsgemäß verteilt ist, überprüfen Sie die Zuteilungen, indem Sie den folgenden Befehl ausführen. Ersetze „JOB“ durch einen einzelnen Auftrag oder eine durch Kommas getrennte Liste von Aufträgen.

    Shell
     ghe-cluster-balance status -j JOB
    

    Um beispielsweise den Status der Zuteilungen für den HTTP-Server und den Autorisierungsdienst Ihrer Instanz anzuzeigen, können Sie ghe-cluster-balance status -j github-unicorn,authzd ausführen.

Erneutes Ausgleichen der Zuteilungen

Nachdem Sie ermittelt haben, welche Aufträge nicht ausgeglichen auf Ihre Clusterknoten verteilt sind, können Sie Zuteilungen mithilfe des ghe-cluster-balance rebalance-Hilfsprogramms erneut ausgleichen. Das Hilfsprogramm überprüft die Verteilung vorhandener Aufträge. Wenn Aufträge nicht ausgeglichen verteilt sind, zeigt das Hilfsprogramm die Aufträge an und fordert dich auf, fortzufahren. Wenn Sie fortfahren, erstellt das Hilfsprogramm neue Zuteilungen, um die Aufträge erneut zu verteilen.

  1. Führe den folgenden Befehl aus, um einen Probelauf durchzuführen und das Ergebnis des erneuten Ausgleichs anzuzeigen, ohne Änderungen vorzunehmen. Ersetze „JOB“ durch einen einzelnen Auftrag oder eine durch Kommas getrennte Liste von Aufträgen.

    Shell
    ghe-cluster-balance rebalance --dry-run -j JOB
    

    Sie können beispielsweise einen Probelauf des erneuten Ausgleichens von Aufträgen für den HTTP-Server und den Autorisierungsdienst der Instanz durchführen, indem Sie ghe-cluster-balance rebalance --dry-run -j github-unicorn,authzd ausführen.

  2. Führe den folgenden Befehl aus, um einen erneuten Ausgleich vorzunehmen. Ersetze „JOB“ durch einen einzelnen Auftrag oder eine durch Kommas getrennte Liste von Aufträgen.

    Shell
    ghe-cluster-balance rebalance -j JOB
    

Planen des Neuausgleichs der Zuteilung

Sie können das erneute Ausgleichen von Aufträgen in Ihrem Cluster planen, indem Sie Konfigurationswerte für Ihre GitHub Enterprise Server-Instance festlegen und anwenden.

Note

Derzeit kannst du die Neuzuordnung von Aufträgen nur für den HTTP-Server (github-unicorn) planen.

  1. Führe den folgenden Befehl aus, um den automatischen, stündlichen Ausgleich von Aufträgen zu konfigurieren.

    Shell
    ghe-config app.cluster-rebalance.enabled true
    
  2. Optional können Sie den Standardzeitplan außer Kraft setzen, indem Sie einen Cron Ausdruck](https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html)} definieren. Führen Sie beispielsweise den folgenden Befehl aus, um Aufträge täglich auszugleichen.

    Shell
    ghe-config app.cluster-rebalance.schedule '0 0 * * *'
    
  3. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Note

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  4. Warten Sie auf den Abschluss der Konfigurationsausführung.

Weiterführende Themen