Изменение размера сети
Знание количества модулей pod и узлов необходимо, прежде чем определить, сколько IP-адресов требуется. Теперь, когда вы знаете количество pod и узлов, давайте рассмотрим, как определить размер сети.
Изменение размера подсети виртуальной сети
Для узлов кластера Kubernetes требуется не более семи виртуальных машин. Помните, что дополнительный узел временно добавляется в кластеры Службы Azure Kubernetes (AKS) во время процесса обновления. Таким образом, необходимо выполнить вычисления размера сети на основе восьми виртуальных машин (VM).
Maximum 7 VMs + 1 VM for upgrades = 8 node IP addresses
По умолчанию кластеры AKS, использующие подключаемый модуль Интерфейса сети контейнеров Azure (CNI), настраиваются так, чтобы разрешать не более 30 pods на узел. Это значение можно настроить для любого значения в диапазоне от 10 до 250 модулей pod. Вычисления емкости сети должны учитывать развертывание максимального числа модулей.
8 VMs x 30 pods per node maximum = 240 pod IP addresses
Для узлов требуется 8 IP-адресов, а для подов — 240 IP-адресов.
8 node IP addresses + 240 pod IP addresses = 248 IP addresses
Совет
Если вы планируете использовать внутреннюю подсистему балансировки нагрузки Azure в кластере, он также требует IP-адреса. Это распространенная практика использования выделенной подсети для подсистем балансировки нагрузки, но если вы планируете использовать ту же подсеть, что и узлы, то необходимо учесть ее.
В этом проекте вы решили сохранить конфигурацию пула узлов по умолчанию. Конфигурация по умолчанию использует один пул узлов в режиме системы, который выполняет все. Если вы хотите убедиться, что системные компоненты изолированы от приложений, вам потребуется по крайней мере два пула узлов. Вы должны настроить вычисления диапазона IP-адресов, чтобы учесть его.
Теперь вы можете обратиться к группе, ответственной за распределение сети в организации, и запросить подсеть, поддерживающую 248 IP-адресов. При создании подсети в виртуальной сети Azure пять IP-адресов зарезервированы для использования системы. Диапазон адресов /24 будет иметь 251 полезные IP-адреса, что позволит сделать его подходящим для кластера.
Выбор диапазона адресов службы Kubernetes
Выбрав нод и подсеть pod, остаётся выбрать только один диапазон адресов: диапазон адресов для службы Kubernetes. Служба Kubernetes предоставляет статический виртуальный IP-адрес, который позволяет направлять трафик на модули pod. Этот диапазон адресов используется только для маршрутизации трафика в кластере. Диапазон адресов никогда не используется или не предоставляется за пределами кластера. Поэтому необходимо выбрать диапазон адресов частной сети, который не используется где-либо в Azure или локальных сетях.
Совет
Так как диапазон адресов службы Kubernetes никогда не используется за пределами кластера, можно повторно использовать этот диапазон адресов в нескольких кластерах.
Ниже указаны правила выбора диапазона адресов службы:
- Диапазон не может находиться в диапазоне IP-адресов виртуальной сети, используемой для кластера.
- Диапазон не должен совпадать с диапазоном IP-адресов любых других виртуальных сетей, которые соединены с сетью кластера.
- Диапазон не может перекрываться с любым диапазоном IP-адресов, используемым в локальных сетях.
- Диапазон не может находиться в диапазоне IP-адресов 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 или 192.0.2.0/24.
Обычно для служб в кластере не требуется много IP-адресов. Как правило, перед группой модулей pod, выполняющих несколько реплик приложения, у вас есть одна служба. В этом случае у вас есть восемь разных служб, формируя приложение, поэтому вам потребуется только восемь IP-адресов службы.
Другие службы, работающие в кластере, такие как контроллеры входящего трафика или сетки служб, могут использовать больше IP-адресов службы. Лучше всего учитывать запас для других служб, которые можно использовать в будущем. Обычно хорошей идеей будет использовать широкий диапазон адресов. Диапазон адресов /24 предоставляет достаточно места для работы кластера.
Выбор IP-адреса службы DNS
Kubernetes использует встроенную службу доменных имен (DNS) для предоставления функций обнаружения служб в кластере. Служба DNS должна иметь IP-адрес в диапазоне адресов службы Kubernetes. Вы не можете использовать первый IP-адрес из диапазона адресов службы Kubernetes, но любое другое значение допустимо.
Теперь у вас есть все сведения, необходимые для развертывания кластера.