Поделиться через


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

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

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

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

Симптомы

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

"code": "SubnetIsFull"

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

Причина

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

Примечание.

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

Решение

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

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

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

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

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

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

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

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

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

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