Skip to main content

Solución de problemas de configuraciones de red privada de Azure para ejecutores hospedados en GitHub en su empresa

Aprenda a solucionar problemas comunes mientras crea configuraciones de red privada Azure para utilizar ejecutores alojados en GitHub con una Azure VNet.

¿Quién puede utilizar esta característica?

Enterprise owners can configure private networking for GitHub-hosted runners at the enterprise level.

Solución de problemas de configuración de redes privadas para ejecutores alojados en GitHub en su empresa

Habilitación de la creación de configuraciones de red para organizaciones en una empresa

De manera predeterminada, las organizaciones de una empresa no pueden crear configuraciones de red y solo heredan configuraciones de red de nivel empresarial. Los propietarios de empresas pueden establecer una directiva que permita a las organizaciones de la empresa crear configuraciones de red independientes de la empresa. Para obtener más información, vea «Configuración de redes privadas para los ejecutores hospedados en GitHub en su empresa».

Configuración de recursos de Azure antes de crear una configuración de red en GitHub

Asegúrese de que los recursos de Azure se han configurado antes de agregar una configuración de red en GitHub.

Regiones admitidas

El servicio GitHub Actions admite un subconjunto de todas las regiones que proporciona Azure. Para facilitar la comunicación entre el servicio GitHub Actions y la subred, la subred debe estar en una de las siguientes regiones admitidas.

  • EastUs
  • EastUs2
  • WestUs2
  • WestUs3
  • CentralUs
  • NorthCentralUs
  • AustraliaEast
  • JapanEast
  • FranceCentral
  • GermanyWestCentral
  • NorthEurope
  • NorwayEast
  • SwedenCentral
  • SwitzerlandNorth
  • UkSouth
  • SoutheastAsia
  • KoreaCentral

Las redes privadas de Azure admiten ejecutores de GPU en las siguientes regiones.

  • EastUs
  • WestUs
  • NorthCentralUs

Las redes privadas de Azure admiten ejecutores de ARM64 en las siguientes regiones.

  • EastUs
  • EastUs2
  • WestUs2
  • WestUs3
  • NorthCentralUs

Si no se admite la región deseada, envía una solicitud de disponibilidad de región nueva en este formulario de GitHub. También puede usar el emparejamiento global de redes virtuales para conectar redes virtuales en distintas regiones de Azure. Para obtener más información, consulte Emparejamiento de redes virtuales en la documentación de Azure.

El ejecutor no pudo conectarse a Internet

Los ejecutores hospedados por GitHub deben poder realizar conexiones salientes a GitHub.com así como a otras direcciones URL necesarias para GitHub Actions.

Si GitHub Actions no pueden comunicarse con los ejecutores, el grupo nunca podrá poner ejecutores en línea y, por tanto, no se recogerán trabajos. En este caso, el grupo tendrá el siguiente código de error.

VNetInjectionFailedToConnectToInternet

Para corregirlo, asegúrate de que has configurado los recursos de Azure según los procedimientos que se indican en "Configuración de los recursos de Azure".

El ámbito de implementación está bloqueado

Puede colocar bloqueos en la suscripción o el grupo de recursos de Azure, lo que puede impedir la creación o eliminación de la NIC.

Los bloqueos que impiden la creación de NIC no pueden recoger trabajos, mientras que los bloqueos que impiden la eliminación de NIC agotan el espacio de direcciones de subred (al continuar con la creación de NIC) o tienen largos tiempos de cola para asignar (QTA) a medida que el servicio reintenta las excepciones de implementación.

En este caso, el grupo tendrá el siguiente código de error.

RunnerDeploymentScopeLocked

Para corregirlo, elimine el bloqueo o cambie la subred que está usando a una sin bloqueo.

Implementación bloqueada por directiva

Puede crear directivas en su grupo de administración, suscripción, grupo de recursos o recursos individuales. La directiva más común es requerir que un recurso tenga determinadas etiquetas o que tenga un nombre específico.

La directiva impedirá la creación de NIC, lo que significa que el grupo no recogerá trabajos, ya que ninguna máquina virtual puede ponerse en línea.

En este caso, el grupo tendrá el siguiente código de error.

RunnerDeploymentBlockedByPolicy

Para corregir esto, elimine la directiva o cambie la subred que está usando a una sin directiva.

La subred está completa

Las subredes tienen una cantidad limitada de direcciones IP que se van a distribuir. Cada ejecutor consume una dirección IP. Si el servicio intenta escalar verticalmente más allá del número máximo de ejecutores configurado, se producirán errores de implementación.

Esto afecta a la capacidad del grupo de agregar ejecutores adicionales. Si la profundidad de la cola es lo suficientemente alta, puede experimentar un aumento de los tiempos de cola para asignar (QTA). Los trabajos se seguirán procesando, pero no con el nivel de simultaneidad que pueda esperar.

En este caso, el grupo tendrá el siguiente código de error.

VNetInjectionSubnetIsFull

Para corregir esto, aumente el tamaño de la subred que usa o reduzca el número máximo de ejecutores del grupo para que coincidan con el tamaño de la subred.

Reglas de firewall o NSG incorrectas

Los procedimientos de "Configuración de los recursos de Azure" enumeran las aperturas necesarias. Sin embargo, es posible que tenga redes de producción complejas con varios servidores proxy o firewalls de bajada.

Si los ejecutores no pueden ponerse en línea, no se recogerá ningún trabajo. El proceso de configuración puede implicar la configuración de la aplicación ejecutores y la comunicación con el servicio GitHub Actions para indicar que está listo, así como para capturar e instalar herramientas anti-abuso. Si se produce un error en cualquiera de estos procesos, el ejecutor no puede recoger ningún trabajo.

Si experimenta estos problemas, intente configurar una máquina virtual en la misma subred que usa para redes privadas con ejecutores hospedados por GitHub. Sin embargo, si cuenta con un vínculo de asociación de servicio (SAL), esto no será posible.

Si cuenta con un SAL, pruebe a configurar una subred similar en la red virtual y coloque una máquina virtual en esa red. A continuación, intente registrar un ejecutor autohospedado en él.

Error de carga de solicitud HTTP al configurar recursos de Azure

Al ejecutar el comando para configurar los recursos de Azure, asegúrese de que usa la versión de API correcta y la propiedad businessId. Si usa una propiedad diferente, el comando puede devolver el siguiente error.

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

Si experimenta este error, puede ver más información ejecutando el comando mediante la marca ---debug.