Устранение неполадок при настройке частной сети для GitHubразмещенных в вашей организации средств выполнения
Включение создания конфигураций сети для организаций в организации в организации
По умолчанию организации в организации не могут создавать новые конфигурации сети и наследовать только конфигурации сети корпоративного уровня. Владельцы предприятия могут задать политику, которая позволяет организациям в организации создавать конфигурации сети, которые не зависят от предприятия. Дополнительные сведения см. в разделе Настройка частных сетей для пользователей, размещённых на GitHub, в вашем предприятии.
Настройка ресурсов Azure перед созданием конфигурации сети в GitHub
Убедитесь, что ресурсы Azure настроены перед добавлением конфигурации сети в GitHub.
Поддерживаемые регионы
Служба GitHub Actions поддерживает подмножество всех регионов, которые предоставляет Azure. Чтобы упростить взаимодействие между службой GitHub Actions и подсетью, подсеть должна находиться в одном из поддерживаемых регионов.
Примечание.
Если вы используете Место расположения данных для GHE.com, поддерживаемые регионы отличаются. См . раздел AUTOTITLE.
Следующие регионы поддерживаются в GitHub.com.
AustraliaEastBrazilSouthCanadaCentralCanadaEastCentralUsEastAsiaEastUsEastUs2FranceCentralGermanyWestCentralJapanWestKoreaCentralNorthCentralUsNorthEuropeNorwayEastSouthCentralUsSoutheastAsiaSouthIndiaSwedenCentralSwitzerlandNorthUkSouthUkWestWestUsWestUs2WestUs3
Частная сеть Azure поддерживает запуски GPU в следующих регионах.
EastUsNorthCentralUsSouthCentralUsWestUs
Частная сеть Azure поддерживает запуски Arm64 в следующих регионах.
CentralUsEastUsEastUs2NorthCentralUsSouthCentralUsWestUsWestUs2WestUs3
Если нужный регион не поддерживается, отправьте запрос на доступность нового региона в этой форме GitHub. Для подключения виртуальных сетей между регионами Azure также можно использовать пиринг глобальной виртуальной сети. Дополнительные сведения см. в документации по Azure.
Не удалось подключиться к Интернету
GitHubразмещенных в среде runners необходимо иметь возможность выполнять исходящие подключения к GitHub и другим необходимым URL-адресам для GitHub Actions.
Если GitHub Actions не может взаимодействовать с бегунами, пул никогда не сможет принести бегунов в интернет, и поэтому никакие задания не будут выбраны. В этом случае пул будет иметь следующий код ошибки.
VNetInjectionFailedToConnectToInternet
Чтобы устранить эту проблему, убедитесь, что ресурсы Azure настроены в соответствии с процедурами настройки ресурсов Azure.
Область развертывания заблокирована
Вы можете поместить блокировки в подписку Или группу ресурсов Azure, которая может препятствовать созданию или удалению сетевого адаптера.
Блокировки, которые препятствуют созданию сетевых адаптеров, не могут собирать задания, а блокировки, которые препятствуют удалению сетевого адаптера либо исчерпание адресного пространства подсети (продолжая создавать сетевые адаптеры), либо имеют длительное время назначения очереди (QTA) по мере повтора исключений развертывания службы.
В этом случае пул будет иметь следующий код ошибки.
RunnerDeploymentScopeLocked
Чтобы устранить эту проблему, удалите блокировку или измените подсеть, используемую на одну без блокировки.
Развертывание заблокировано политикой
Политики можно создавать в своей группе управления, подписке, группе ресурсов или отдельных ресурсах. Наиболее распространенная политика заключается в том, что ресурс должен иметь определенные теги или иметь определенное имя.
Политика предотвратит создание сетевых адаптеров, что означает, что пул не будет получать задания, так как виртуальные машины не могут поступать в интернет.
В этом случае пул будет иметь следующий код ошибки.
RunnerDeploymentBlockedByPolicy
Чтобы устранить эту проблему, удалите политику или измените используемую подсеть на одну без политики.
Подсеть переполнена
Подсети имеют ограниченный объем IP-адресов для распространения. Каждый модуль выполнения использует один IP-адрес. Если служба пытается увеличить масштаб до максимального числа runner, она столкнется с ошибками развертывания.
Это влияет на способность пула добавлять дополнительные средства выполнения. Если глубина очереди достаточно высока, может возникнуть увеличение времени назначения очереди (QTA). Задания по-прежнему будут обрабатываться, но не на уровне параллелизма, который можно ожидать.
В этом случае пул будет иметь следующий код ошибки.
VNetInjectionSubnetIsFull
Чтобы устранить эту проблему, увеличьте размер используемой подсети или уменьшите максимальное количество бегуников пула, чтобы соответствовать размеру подсети.
Не удается удалить подсеть
В некоторых случаях подсеть не может быть удалена, так как к ней применена связь связи службы (SAL). Дополнительные сведения см. в разделе Настройка частных сетей для пользователей, размещённых на GitHub, в вашей организации.
Если необходимо определить ресурс параметров сети, связанный с подсетью, можно выполнить следующую curl команду.
Чтобы получить маркер Записи Azure, обратитесь к документации по Azure. Используйте то же самое api-version , что вы использовали для создания ресурса.
curl --request GET \
--url "https://management.azure.com/subscriptions/{subscriptionId}/providers/GitHub.Network/NetworkSettings?api-version={api-version}&subnetId={subnetId}" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer {entra_token}"
Неправильные правила NSG или брандмауэра
Процедуры настройки ресурсов Azure перечислены необходимые открытия. Однако у вас могут быть сложные рабочие сети с несколькими подчиненными прокси-серверами или брандмауэрами.
Если бегуны не смогут прийти в интернет, ни один рабочий мест не будет выбран. Процесс установки может включать настройку приложения runner и обратную связь с службой GitHub Actions для указания готовности, а также получения и установки средств защиты от злоупотреблений. Если любой из этих процессов завершается ошибкой, средство выполнения не может забрать какие-либо задания.
Если у вас возникли эти проблемы, попробуйте настроить виртуальную машину в той же подсети, которую вы используете для частной сети с GitHubразмещенными средствами выполнения. Однако если у вас есть ссылка на связь службы (SAL), это невозможно.
Если у вас есть sal, попробуйте настроить аналогичную подсеть в виртуальной сети и разместить виртуальную машину в этой сети. Затем попытайтесь зарегистрировать локальное средство запуска на нем.
Сбой полезных данных HTTP-запроса при настройке ресурсов Azure
При выполнении команды для настройки ресурсов Azure убедитесь, что вы используете правильную версию API и businessId свойство. Если вы используете другое свойство, ваша команда может вернуть следующую ошибку.
(HttpRequestPayloadAPISpecValidationFailed) HTTP request payload failed validation against API specification with one or more errors. Please see details for more information.
При возникновении этой ошибки вы можете просмотреть дополнительные сведения, выполнив команду с помощью флага ---debug .
Параметры сети, настроенные на неправильном уровне
Если параметры сети были настроены с помощью организации вместо предприятия databaseId databaseId, возникнет ошибка. Сообщение об ошибке указывает, что частная сеть не может быть установлена с указанным идентификатором ресурса, так как она уже связана с другой организацией или организацией. Чтобы устранить эту проблему, удалите существующие параметры сети и повторно создайте их с помощью предприятия databaseId.