Устранение неполадок при настройке частной сети для GitHubразмещенных в организации runners
Configuring Azure resources before create a network configuration in GitHub
Убедитесь, что ваши ресурсы Azure настроены перед добавлением сетевой конфигурации в GitHub.
Поддерживаемые регионы
GitHub Actions Сервис поддерживает подмножество всех регионов, которые предоставляет Azure. Для облегчения связи между GitHub Actions сервисом и вашей подсетью подсеть должна находиться в одном из поддерживаемых регионов.
Примечание.
Если вы используете Место расположения данных на GHE.com, поддерживаемые регионы разные. См . раздел AUTOTITLE.
Следующие регионы поддерживаются на GitHub.com.
AustraliaEastBrazilSouthCanadaCentralCanadaEastCentralUsEastAsiaEastUsEastUs2FranceCentralGermanyWestCentralJapanWestKoreaCentralNorthCentralUsNorthEuropeNorwayEastSouthCentralUsSoutheastAsiaSouthIndiaSwedenCentralSwitzerlandNorthUkSouthUkWestWestUsWestUs2WestUs3
Частная сеть Azure поддерживает запуски GPU в следующих регионах.
EastUsNorthCentralUsSouthCentralUsWestUs
Частная сеть Azure поддерживает запуски Arm64 в следующих регионах.
CentralUsEastUsEastUs2NorthCentralUsSouthCentralUsWestUsWestUs2WestUs3
Вскоре мы запустим процесс запроса поддержки для новых регионов. Для подключения виртуальных сетей между регионами Azure также можно использовать пиринг глобальной виртуальной сети. Дополнительные сведения см. в документации по Azure.
Не удалось подключиться к Интернету
GitHub-Размещённые раннеры должны уметь устанавливать исходящие соединения 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-hosted runners. Однако если у вас есть ссылка на связь службы (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.
Резервная сеть не переключает трафик
Примечание.
Отказное переключение VNET включено public preview и может измениться. Переключение между основной и резервной сетями происходит постепенно. Во время перехода бегуны могут работать на обеих сетях одновременно. Согласно тестам, полный переход занимает примерно 15 минут. Убедитесь, что обе подсети оставались доступными в этот период.
Если при включении аварийной сети, похоже, не перенаправляется трафик бегущего, проверьте следующее:
- Убедитесь, что Azure ресурсы резервной подсети (VNET/подсеть, NSG/файрвол, настройки сети) корректно настроены. Следуйте тем же процедурам «Configuring your Azure resources», что и для вашей основной подсети.
- Убедитесь, что резервная сеть была добавлена в правильную сетевую конфигурацию и что конфигурация связана с соответствующей группой раннеров.
Резервная подсеть недоступна
Если раннеры не могут подключиться после включения резервной сети, проблема, скорее всего, связана с ресурсами Azure, настроенными для резервной подсети.
- Убедитесь, что в подсети отказа применимы правильные правила NSG или файрвола, соответствующие требованиям, указанным в процедурах AUTOTITLE .
- Проверьте, есть ли в подсети отказного переключения достаточно IP-адресного пространства для ожидаемой параллелности бегущего.
Нельзя вернуться к основному режиму после отказа, инициированного GitHub,
- Перейдите к вашей сетевой конфигурации в настройках Hosted compute networking .
- Нажмите на значок редактирования рядом с сетевой конфигурацией. Затем нажмите кнопку "Изменить конфигурацию".
-
**Нажмите «Отключить резервную VNET**», чтобы вернуть трафик раннера в основную подсеть.
Если вы не можете отключить резервный режим, убедитесь, что ресурсы Azure основной подсети здоровы и доступны. Проверьте, нет ли текущих сбоев в области Azure основной подсети.