Устранение неполадок кода ошибки 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) подсети в существующем пуле узлов в настоящее время не поддерживается. Чтобы перенести рабочие нагрузки в новый пул узлов в более крупной подсети, выполните следующие действия.
Создайте подсеть в виртуальной сети кластера, которая содержит более большой диапазон адресов CIDR, чем существующая подсеть. Сведения о том, как правильно масштабировать подсеть для кластера, см. в разделе "Планирование IP-адресов для кластера".
Создайте пул узлов в новой подсети, выполнив команду az aks nodepool добавить вместе с параметром
--vnet-subnet-id
.Перенос рабочих нагрузок в новый пул узлов путем очистки узлов в старом пуле узлов. Сведения о безопасном очистке рабочих узлов AKS см. в разделе "Безопасное очистка узла".
Удалите исходный пул узлов, выполнив команду az aks nodepool delete .
Дополнительная информация
Заявление об отказе от ответственности за контактные данные сторонней организации
Корпорация Майкрософт предоставляет контактные данные сторонних производителей в целях получения дополнительных сведений по данной теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактных данных сторонних производителей.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.