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
SouthCentralUs
AustraliaEast
JapanEast
FranceCentral
GermanyWestCentral
NorthEurope
NorwayEast
SwedenCentral
SwitzerlandNorth
UkSouth
SoutheastAsia
Las redes privadas de Azure admiten ejecutores de GPU en las siguientes regiones.
EastUs
WestUs
NorthCentralUs
SouthCentralUs
Las redes privadas de Azure admiten ejecutores de ARM64 en las siguientes regiones.
EastUs
EastUs2
WestUs2
NorthCentralUs
SouthCentralUs
Note
Los ejecutores de ARM64 están actualmente en versión beta y están sujetos a cambios.
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
.