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


Планирование IP-адресов для кластеров Служба Azure Kubernetes (AKS)

В этой статье приводятся рекомендации по планированию IP-адресов для кластеров Служба Azure Kubernetes (AKS).

Инструкции по планированию IP-адресов для отдельных параметров CNI см. в следующем разделе, посвященном ссылкам на документацию по подключаемым модулям.

Размер подсети

Подсеть виртуальной сети Azure должна быть достаточно большой, чтобы разместить кластер, который зависит от того, используете ли вы наложенную сеть или плоскую сеть.

Наложение сетей

При использовании сетей наложения, таких как наложение Azure CNI, подсеть должна быть достаточно большой, чтобы назначить IP-адреса узлам. Модули Pod назначаются из отдельного диапазона CIDR и не требуют IP-адресов виртуальной сети. Подсеть виртуальной сети, используемая для кластера, может быть меньше, чем с неструктурированными сетями.

Важно обеспечить выделение достаточного пространства в частном диапазоне CIDR для ваших модулей pod для учета масштабирования. При планировании размеров диапазона IP-адресов необходимо вычислить максимальное количество модулей pod. Каждому узлу в кластере назначена подсеть /24 (256 IP-адресов) для модулей pod. Необходимо запланировать подсеть сети наложения, чтобы вместить максимальное количество узлов, которые требуется запустить.

Неструктурированные сети

Неструктурированные сети, такие как подсеть Pod Pod Azure CNI, требуют достаточно большой подсети для размещения узлов и модулей pod. Так как узлы и модули pod получают IP-адреса из виртуальной сети, необходимо спланировать максимальное количество узлов и модулей pod, которые требуется запустить. Подсеть Pod Pod Azure CNI использует подсеть для узлов и отдельную подсеть для модулей pod, поэтому необходимо спланировать оба.

Размер IP-адреса

Рекомендации по обновлению и масштабированию

При планировании IP-адресов для кластера AKS следует учитывать количество IP-адресов, необходимых для операций обновления и масштабирования. Если диапазон IP-адресов настроен только для поддержки фиксированного количества узлов, вы не сможете обновить или масштабировать кластер.

При обновлении кластера AKS новый узел развертывается в кластере. Службы и рабочие нагрузки теперь выполняются на новом узле, а старый узел удаляется из кластера. Для выполнения этого процесса последовательного обновления требуется, чтобы был доступен как минимум один дополнительный блок IP-адресов. Затем число узлов — n + 1 n это количество узлов в кластере.

При масштабировании кластера AKS новый узел развертывается в кластере. Службы и рабочие нагрузки теперь выполняются на новом узле. Диапазон IP-адресов должен учитывать, как вы хотите увеличить количество узлов и модулей pod, которые может поддерживать кластер. Кроме того, следует включить как минимум один дополнительный узел для операций обновления или количество узлов, заданных параметром " Настройка всплеска узла". Количество узлов будет равно n + number-of-additional-scaled-nodes-you-anticipate + max surge.

Если вы используете подсеть Pod Pod Azure CNI, и вы ожидаете, что узлы будут запускать максимальное количество модулей pod и регулярно уничтожать и развертывать модули pod, следует также учитывать дополнительные IP-адреса на узел. Для удаления службы и выпуска IP-адреса для развертывания новой службы и получения адреса может потребоваться несколько секунд. Дополнительная учетная запись IP-адресов для этой возможности.

План IP-адреса для кластера AKS содержит виртуальную сеть, по крайней мере одну подсеть для узлов и контейнеров pod, а также диапазон адресов службы Kubernetes.

Ресурс Azure Диапазон адресов Ограничения и размер
Виртуальная сеть Azure Максимальный размер /8. 65 536 настроенных IP-адресов. Сведения об исключении см. в статье о выделении статических блоков pod Pod Azure CNI Перекрывающиеся адресные пространства в сети могут вызвать проблемы.
Подсеть Должно быть достаточно большим, чтобы разместить узлы, модули pod и все ресурсы Kubernetes и Azure в кластере. Например, при развертывании внутренней подсистемы балансировки нагрузки Azure внешние IP-адреса выделяются из подсети кластера, а не общедоступных IP-адресов. Размер подсети также должен учитывать операции обновления и будущие потребности масштабирования.

Используйте следующее уравнение, чтобы вычислить минимальный размер подсети, включая дополнительный узел для операций обновления: (number of nodes + max surge nodes) + ((number of nodes + max surge nodes) * maximum pods per node that you configure)

пример для кластера с 50 узлами: (/21 или более крупный

) Пример для кластера с 50 узлами, готовящимся к масштабированию дополнительных 10 узлов с максимальным всплеском по умолчанию 1 узла: (61) + (61 * 30 (default)) = 1,891 (51) + (51 * 30 (default)) = 1,581 (/21 или больше),

если при создании кластера не указано максимальное количество модулей pod на узел, Максимальное количество модулей pod на узел равно 30. Минимальное число требуемых IP-адресов на основе этого значения. Если вы вычисляете минимальные требования к IP-адресу по другому максимальному значению, см . раздел "Максимальное количество модулей pod на узел ", чтобы задать это значение при развертывании кластера.

Диапазон адресов службы Kubernetes Любой сетевой элемент в этой виртуальной сети не должен использовать этот диапазон. CIDR адреса службы должен быть меньше /12. Этот диапазон можно повторно использовать в разных кластерах AKS.
IP-адрес службы DNS Kubernetes IP-адрес в диапазоне адресов службы Kubernetes, используемый обнаружением службы кластера. Не используйте первый IP-адрес своего диапазона адресов. Первый адрес в диапазоне подсети используется для адреса kubernetes.default.svc.cluster.local.

Максимальное число контейнеров pod на узле

Максимальное число модулей pod на каждом узле в кластере AKS — 250. Максимальное количество контейнеров pod по умолчанию для каждого узла зависит от сети kubenet, Azure CNI и метода развертывания кластера.

CNI Максимальные значения модулей pod по умолчанию Настройка при развертывании
Наложение Azure CNI 250 Да (до 250)
Подсеть Pod Pod Azure CNI 110 Да (до 250)
Azure CNI (устаревшая версия) 30 Да (до 250)
Kubenet 110 Да (до 250)

Настройка максимальных модулей pod на узел для кластеров

Можно настроить максимальное количество модулей pod на узел во время развертывания кластера или при добавлении новых пулов узлов. Можно задать максимальное значение 250 pod на узел.

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

Сеть Минимум Максимум
Azure CNI 10 250
Kubenet 10 250

Примечание.

Минимальное значение в предыдущей таблице строго применяется службой AKS. Нельзя задать значение maxPods, которое меньше минимального значения, так как это позволяет предотвратить запуск кластера.

Новые кластеры

Можно определить максимальное количество модулей pod на узел при создании нового кластера с помощью одного из следующих методов:

  • Azure CLI: укажите --max-pods аргумент при развертывании кластера с az aks create помощью команды.
  • Шаблон Azure Resource Manager. Укажите maxPods свойство в объекте [ManagedClusterAgentPoolProfile] при развертывании кластера с шаблоном Azure Resource Manager.
  • Портал Azure. Изменение Max pods per node поля в параметрах пула узлов при создании кластера или добавлении нового пула узлов.

Существующие кластеры

При создании пула узлов можно определить максимальное количество модулей pod на узел. Если необходимо увеличить параметр maxPods в существующем кластере, добавьте новый пул узлов с новым требуемым числом maxPods . После переноса модулей pod в новый пул удалите старый пул узлов.

Next Steps