Skip to main content

Problembehandlung bei einem Azure Privatnetzwerk für von GitHub gehostete Runner in Ihrer Organisation

Erfahren Sie, wie Sie häufige Probleme bei der Erstellung von Azure Privatnetzwerk-Konfigurationen zur Verwendung von GitHub-gehosteten Runnern mit einem Azure VNET beheben.

Wer kann dieses Feature verwenden?

Organisationen, die den GitHub Team-Plan verwenden, können GitHub gehostete Runner auf Organisationsebene konfigurieren.

Fehlerbehebung bei der Konfiguration eines Privatnetzwerks für GitHub-gehostete Runner in Ihrem Unternehmen

Konfigurieren von Azure-Tessourcen vor einer Netzwerkkonfiguration in GitHub

Stellen Sie sicher, dass Ihre Azure-Ressourcen konfiguriert wurden, bevor Sie eine Netzwerkkonfiguration in GitHub hinzufügen.

Unterstützte Regionen

Der Dienst GitHub Actions unterstützt eine Teilmenge aller Regionen, die Azure bereitstellt. Um die Kommunikation zwischen dem Dienst GitHub Actions und Ihrem Subnetz zu erleichtern, muss Ihr Subnetz in einer der folgenden unterstützten Regionen liegen.

  • EastUs
  • EastUs2
  • WestUs2
  • AustraliaEast
  • CentralUs
  • FranceCentral
  • NorthEurope
  • NorwayEast
  • SoutheastAsia
  • SwitzerlandNorth
  • UkSouth

Private Azure-Netzwerke unterstützen GPU-Runner in den folgenden Regionen.

  • EastUs
  • WestUs
  • NorthCentralUs
  • SouthCentralUs

Sie können auch globales Peering virtueller Netzwerke verwenden, um virtuelle Netzwerke über Azure-Regionen hinweg zu verbinden. Weitere Informationen finden Sie unter Peering virtueller Netzwerke in der Azure-Dokumentation.

Runner konnte keine Verbindung mit dem Internet herstellen

GitHub-gehostete Runner müssen ausgehende Verbindungen mit GitHub.com sowie andere erforderliche URLs für GitHub Actions herstellen können.

Wenn GitHub Actions nicht mit den Runnern kommunizieren können, kann der Pool niemals Runner online bringen, sodass keine Aufträge angenommen werden. In diesem Fall verfügt der Pool über den folgenden Fehlercode.

VNetInjectionFailedToConnectToInternet

Um dies zu beheben, stellen Sie sicher, dass Sie Ihre Azure-Ressourcen gemäß den Verfahren „Konfigurieren Ihrer Azure-Ressourcen“ konfiguriert haben. Weitere Informationen finden Sie unter Konfigurieren von privaten Netzwerken mit von GitHub gehosteten Runnern in Ihrer Organisation.

Bereitstellungsbereich ist gesperrt

Sie können Sperren für das Azure-Abonnement oder die Ressourcengruppe hinzufügen, wodurch die Erstellung oder Löschung von NIC verhindert werden kann.

Sperren, die die Erstellung von NIC verhindern, nehmen keine Aufträge an, während Sperren, die die Löschung von NIC verhindern, entweder den Subnetz-Adressraum ausschöpfen (indem sie weiterhin NIC erstellen) oder lange Wartezeiten bis zur Zuweisung haben, da der Dienst die Bereitstellungsausnahmen erneut versucht.

In diesem Fall verfügt der Pool über den folgenden Fehlercode.

RunnerDeploymentScopeLocked

Um dies zu beheben, entfernen Sie die Sperre, oder wechseln Sie zu einem Subnetz ohne Sperre.

Bereitstellung blockiert durch Richtlinie

Sie können Richtlinien für deren Verwaltungsgruppe, Abonnement, Ressourcengruppe oder einzelne Ressourcen erstellen. Die am häufigsten verwendete Richtlinie erfordert, dass eine Ressource bestimmte Tags aufweist oder einen bestimmten Namen hat.

Die Richtlinie verhindert die Erstellung von NIC, d h., der Pool nimmt keine Aufträge an, da keine virtuellen Computer online gehen können.

In diesem Fall verfügt der Pool über den folgenden Fehlercode.

RunnerDeploymentBlockedByPolicy

Um dies zu beheben, entfernen Sie die Richtlinie, oder wechseln Sie zu einem Subnetz ohne Richtlinie.

Subnetz ist voll

Subnetze verfügen über eine begrenzte Anzahl an zu vergebenden IP-Adressen. Jeder Runner verbraucht eine IP-Adresse. Wenn der Dienst versucht, über die eingestellte maximale Anzahl der Runner hinweg hochzuskalieren, tritt ein Bereitstellungsfehler auf.

Das beeinträchtigt die Fähigkeit des Pools, zusätzliche Runner hinzuzufügen. Wenn die Warteschlangentiefe groß genug ist, kann es zu längeren Zuweisungszeiten (Queue-to-Assign, QTA) kommen. Aufträge werden zwar weiterhin verarbeitet, aber nicht mit der von Ihnen erwarteten Gleichzeitigkeit.

In diesem Fall verfügt der Pool über den folgenden Fehlercode.

VNetInjectionSubnetIsFull

Um das zu beheben, steigern Sie entweder die Größe des verwendeten Subnetzes, oder verringern Sie die maximale Anzahl der Runner des Pools, damit diese Ihrer Subnetzgröße entspricht.

Falsche NSG- oder Firewallregeln

Die Vorgehensweisen „Konfigurieren Ihrer Azure-Ressourcen“ nennen die erforderlichen Öffnungen. Möglicherweise gibt es jedoch komplexe Produktionsnetzwerke mit mehreren nachgeschalteten Proxys oder Firewalls.

Wenn Runner nicht online kommen, werden keine Aufträge angenommen. Ihr Setupprozess kann das Einrichten der Runner-Anwendung und die Kommunikation mit dem GitHub Actions-Dienst umfassen, um anzugeben, dass sie bereit ist, sowie das Abrufen und Installieren von Tools zur Missbrauchsbekämpfung. Wenn einer dieser Prozesse fehlschlägt, kann der Runner keine Aufträge annehmen.

Wenn diese Probleme auftreten, versuchen Sie, einen virtuellen Computer im selben Subnetz einzurichten, das Sie für private Netzwerke mit GitHub-gehosteten Runnern verwenden. Wenn Sie jedoch über einen Dienstzuordnungslink (SAL) verfügen, ist das nicht möglich.

Wenn Sie über einen Dienstzuordnungslink verfügen, versuchen Sie, ein ähnliches Subnetz im virtuellen Netzwerk einzurichten und einen virtuellen Computer in diesem Netzwerk zu platzieren. Versuchen Sie anschließend, darin einen selbst gehosteten Runner zu registrieren.

HTTP-Anforderungs-Payloadfehler beim Konfigurieren von Azure-Ressourcen

Stellen Sie beim Ausführen des Befehls zum Konfigurieren von Azure-Ressourcen sicher, dass Sie die richtige API-Version und die businessId-Eigenschaft verwenden. Wenn Sie eine andere Eigenschaft verwenden, gibt Ihr Befehl möglicherweise den folgenden Fehler zurück.

(HttpRequestPayloadAPISpecValidationFailed) HTTP request payload failed validation against API specification with one or more errors. Please see details for more information.

Wenn dieser Fehler auftritt, können Sie sich weitere Informationen anzeigen lassen, indem Sie den Befehl mit dem ---debug-Flag ausführen.