Устранение неполадок с кодом ошибки SubnetIsFull

В этой статье описывается, как определить и устранить ошибкуSubnetIsFull, возникающую при попытке масштабирования кластера Microsoft Служба Azure Kubernetes (AKS).

Предварительные требования

  • Azure CLI (версия 2.0.59 или более поздняя версия)

Симптомы

При попытке масштабирования кластера AKS появляется следующее сообщение об ошибке:

"code": "SubnetIsFull"

"message": "Имя подсети подсети <с префиксом префикса <адреса подсети> не имеет достаточно емкости для <IP-адресов new-ip-count>".>

Причина

Чтобы добавить узлы в кластер AKS (горизонтальное масштабирование), необходимо использовать больше IP-адресов из подсети, в которой развернут пул узлов. Точное количество новых IP-адресов, необходимых для успешного завершения операции масштабирования кластера, зависит от сетевого подключаемого модуля, который использует кластер. Сведения о выделении IP-адресов в каждой из этих сетевых моделей см. в статье Сетевые понятия для приложений в AKS.

Примечание.

Azure резервирует пять IP-адресов на подсеть. Первый адрес в подсети — это идентификатор сети, за которым следуют три адреса, которые используются Azure для внутренних целей. Последний адрес в подсети зарезервирован для широковещательных пакетов. Дополнительные сведения см. в статье Существуют ли ограничения на использование IP-адресов в этих подсетях?

Решение

Попытка обновить адресное пространство ciDR (CIDR) под Inter-Domain сети в существующем пуле узлов в настоящее время не поддерживается. Чтобы перенести рабочие нагрузки в новый пул узлов в более крупной подсети, выполните следующие действия.

  1. Создайте подсеть в виртуальной сети кластера, которая содержит больший диапазон адресов CIDR, чем существующая подсеть. Сведения о том, как правильно размер подсети для кластера, см. в разделе Планирование IP-адресации для кластера.

  2. Создайте пул узлов в новой подсети, выполнив команду az aks nodepool add вместе с параметром --vnet-subnet-id .

  3. Перенос рабочих нагрузок в новый пул узлов путем очистки узлов в старом пуле узлов. Сведения о том, как безопасно слить рабочие узлы AKS, см. в разделе Безопасный очистка узла.

  4. Удалите исходный пул узлов, выполнив команду az aks nodepool delete .

Дополнительная информация

Заявление об отказе от ответственности за контактные данные сторонней организации

Корпорация Майкрософт предоставляет сторонние контактные данные, чтобы помочь вам найти дополнительные сведения по этой теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактной информации сторонних поставщиков.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.