AKS, включенная в соответствии с требованиями к сети Azure Arc

Область применения: Azure Stack HCI, версия 23H2

В этой статье описываются основные понятия сети для виртуальных машин и приложений в AKS, включенных в Azure Arc. В этой статье также описываются необходимые сетевые компоненты для создания кластеров Kubernetes. Мы рекомендуем обращаться к администратору сети, чтобы предоставить и настроить сетевые параметры, необходимые для развертывания AKS, включенного Arc.

В этой концептуальной статье рассматриваются следующие ключевые компоненты. Этим компонентам требуется статический IP-адрес, чтобы кластер AKS Arc и приложения успешно создавали и работали:

  • Виртуальные машины кластера AKS
  • IP-адрес плоскости управления AKS
  • Подсистема балансировки нагрузки для контейнерных приложений

Сеть для виртуальных машин кластера AKS

Узлы Kubernetes развертываются как специализированные виртуальные машины в AKS с поддержкой Arc. Эти виртуальные машины являются выделенными IP-адресами для обеспечения обмена данными между узлами Kubernetes. AKS Arc использует логические сети Azure Stack HCI для предоставления IP-адресов и сетей для базовых виртуальных машин кластеров Kubernetes. Дополнительные сведения о логических сетях см. в статье Логические сети для Azure Stack HCI. Необходимо запланировать резервирование одного IP-адреса для каждой виртуальной машины узла кластера AKS в среде Azure Stack HCI.

Примечание

Статический IP-адрес — единственный поддерживаемый режим назначения IP-адреса виртуальным машинам AKS Arc. Это связано с тем, что kubernetes требует, чтобы IP-адрес, назначенный узлу Kubernetes, был постоянным на протяжении всего жизненного цикла кластера Kubernetes.

Чтобы использовать логическую сеть для операции создания кластера AKS Arc, требуются следующие параметры:

Параметр логической сети Описание Обязательный параметр для кластера AKS Arc
--address-prefixes AddressPrefix для сети. В настоящее время поддерживается только 1 префикс адреса. Использование: --address-prefixes "10.220.32.16/24". Поддерживается
--dns-servers Разделенный пробелами список IP-адресов DNS-серверов. Использование: --dns-servers 10.220.32.16 10.220.32.17. Поддерживается
--gateway Шлюз IP-адрес шлюза должен находиться в область префикса адреса. Использование: --gateway 10.220.32.16. Поддерживается
--ip-allocation-method Метод выделения IP-адресов. Поддерживаемые значения — Static. Использование: --ip-allocation-method "Static". Поддерживается
--ip-pool-start Начальный IP-адрес пула IP-адресов. Адрес должен находиться в диапазоне префикса адреса. Использование: --ip-pool-start "10.220.32.18". Поддерживается
--ip-pool-end Конечный IP-адрес пула IP-адресов. Адрес должен находиться в диапазоне префикса адреса. Использование: --ip-pool-end "10.220.32.38". Поддерживается
--vm-switch-name Имя коммутатора виртуальной машины. Использование: --vm-switch-name "vm-switch-01". Поддерживается

IP-адрес уровня управления

Kubernetes использует уровень управления, чтобы гарантировать, что каждый компонент в кластере Kubernetes находится в нужном состоянии. Уровень управления также управляет рабочими узлами, на которые хранятся контейнерные приложения, и обслуживает их. AKS с поддержкой Arc развертывает подсистему балансировки нагрузки KubeVIP, чтобы обеспечить доступность IP-адреса сервера API уровня управления Kubernetes в любое время. Для правильной работы этого экземпляра KubeVIP требуется один неизменяемый IP-адрес уровня управления.

Примечание

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

IP-адреса подсистемы балансировки нагрузки для контейнерных приложений

Main целью подсистемы балансировки нагрузки является распределение трафика между несколькими узлами в кластере Kubernetes. Такая балансировка нагрузки помогает предотвратить простои и повысить общую производительность приложений. AKS поддерживает следующие варианты развертывания подсистемы балансировки нагрузки для кластера Kubernetes:

Независимо от того, выбираете ли вы расширение Arc MetalLB или собственную подсистему балансировки нагрузки, необходимо предоставить набор IP-адресов для службы подсистемы балансировки нагрузки. Вам доступны следующие варианты:

  • Укажите IP-адреса для служб из той же подсети, что и виртуальные машины AKS Arc.
  • Используйте другую сеть и список IP-адресов, если приложению требуется внешняя балансировка нагрузки.

Независимо от выбранного варианта необходимо убедиться, что IP-адреса, выделенные для подсистемы балансировки нагрузки, не конфликтуют с IP-адресами в логической сети или IP-адресах уровня управления для кластеров Kubernetes. Конфликтующие IP-адреса могут привести к непредвиденным сбоям в развертывании и приложениях AKS.

Простое планирование IP-адресов для кластеров и приложений Kubernetes

В следующем пошаговом руководстве по сценарию вы резервируете IP-адреса из одной сети для кластеров и служб Kubernetes. Это самый простой и простой сценарий назначения IP-адресов.

Требование к IP-адресу Минимальное количество IP-адресов Как и где сделать это резервирование
IP-адреса виртуальных машин AKS Arc Зарезервируйте один IP-адрес для каждого рабочего узла в кластере Kubernetes. Например, если вы хотите создать 3 пула узлов с 3 узлами в каждом пуле узлов, необходимо иметь 9 IP-адресов в пуле IP-адресов. Резервируйте IP-адреса для виртуальных машин AKS Arc через пулы IP-адресов в логической сети виртуальных машин Arc.
IP-адреса обновления версии AKS Arc K8s Так как AKS Arc выполняет последовательное обновление, зарезервируйте один IP-адрес для каждого кластера AKS Arc для операций обновления версии Kubernetes. Зарезервируйте IP-адреса для операции обновления версии K8s через пулы IP-адресов в логической сети виртуальных машин Arc.
IP-адрес уровня управления Зарезервируйте один IP-адрес для каждого кластера Kubernetes в вашей среде. Например, если вы хотите создать в общей сложности 5 кластеров, зарезервируйте 5 IP-адресов, по одному для каждого кластера Kubernetes. Зарезервируйте IP-адреса для IP-адресов уровня управления в той же подсети, что и логическая сеть виртуальных машин Arc, но за пределами указанного пула IP-адресов.
IP-адреса подсистемы балансировки нагрузки Количество зарезервированных IP-адресов зависит от модели развертывания приложения. В качестве отправной точки можно зарезервировать один IP-адрес для каждой службы Kubernetes. Зарезервируйте IP-адреса для IP-адресов уровня управления в той же подсети, что и логическая сеть виртуальных машин Arc, но за пределами указанного пула IP-адресов.

Пример пошагового руководства по резервированию IP-адресов для кластеров и приложений Kubernetes

Джейн — ИТ-администратор, только начиная с AKS, включенной в Azure Arc. Она хочет развернуть два кластера Kubernetes: кластер Kubernetes A и кластер Kubernetes B в своем кластере Azure Stack HCI. Она также хочет запустить приложение для голосования поверх кластера A. Это приложение содержит три экземпляра интерфейсного пользовательского интерфейса, работающих в двух кластерах и один экземпляр серверной базы данных. Все ее кластеры и службы AKS работают в одной сети с одной подсетью.

  • Кластер Kubernetes A имеет 3 узла уровня управления и 5 рабочих узлов.
  • Кластер Kubernetes B имеет 1 узел уровня управления и 3 рабочих узла.
  • 3 экземпляра интерфейсного интерфейса (порт 443).
  • 1 экземпляр серверной базы данных (порт 80).

Исходя из предыдущей таблицы, она должна зарезервировать в общей сложности 19 IP-адресов в своей подсети:

  • 8 IP-адресов для виртуальных машин узла AKS Arc в кластере A (по одному IP-адресу на виртуальную машину узла K8s).
  • 4 IP-адреса для виртуальных машин узла AKS Arc в кластере B (по одному IP-адресу на виртуальную машину узла K8s).
  • 2 IP-адреса для выполнения операции обновления AKS Arc (по одному IP-адресу на кластер AKS Arc).
  • 2 IP-адреса для уровня управления AKS Arc (по одному IP-адресу на кластер AKS Arc)
  • 3 IP-адреса для службы Kubernetes (по одному IP-адресу на каждый экземпляр интерфейсного интерфейса, так как все они используют один и тот же порт). Серверная база данных может использовать любой из трех IP-адресов, если в ней используется другой порт.

Продолжая работу с этим примером и добавляя его в следующую таблицу, вы получите следующее:

Параметр Число IP-адресов Как и где сделать это резервирование
Обновление версии AKS Arc и версии K8s Резервирование 14 IP-адресов Сделайте это резервирование с помощью пулов IP-адресов в логической сети Azure Stack HCI.
IP-адрес уровня управления Зарезервируйте 2 IP-адреса, по одному для кластера AKS Arc Используйте параметр для controlPlaneIP передачи IP-адреса для IP-адреса уровня управления. Убедитесь, что этот IP-адрес находится в той же подсети, что и логическая сеть Arc, но за пределами пула IP-адресов, определенного в логической сети Arc.
IP-адреса подсистемы балансировки нагрузки 3 IP-адрес для служб Kubernetes для приложения Jane для голосования. Эти IP-адреса используются при установке подсистемы балансировки нагрузки в кластере A. Вы можете использовать расширение Arc MetalLB или использовать собственную стороннюю подсистему балансировки нагрузки. Убедитесь, что этот IP-адрес находится в той же подсети, что и логическая сеть Arc, но за пределами пула IP-адресов, определенного в логической сети виртуальной машины Arc.

Параметры прокси-сервера

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

Требования к сетевым портам & между виртуальными локальными сетями

При развертывании Azure Stack HCI выделяется непрерывный блок не менее шести статических IP-адресов в подсети сети управления, пропуская адреса, уже используемые физическими серверами. Эти IP-адреса используются Azure Stack HCI и внутренней инфраструктурой (Arc Resource Bridge) для управления виртуальными машинами Arc и AKS Arc. Если ваша сеть управления, предоставляющая IP-адреса для служб Azure Stack HCI, связанных с Arc Resource Bridge, находятся в виртуальной локальной сети, отличной от логической сети, используемой для создания кластеров AKS, необходимо убедиться, что для успешного создания и эксплуатации кластера AKS открыты следующие порты.

Конечный порт Назначение Source Описание Примечания к сети между виртуальными локальными сетями
22 Логическая сеть, используемая для виртуальных машин AKS Arc IP-адреса в сети управления Требуется для сбора журналов для устранения неполадок. Если вы используете отдельные виртуальные локальные сети, IP-адреса в сети управления, используемые для Azure Stack HCI и Arc Resource Bridge, должны получать доступ к виртуальным машинам кластера AKS Arc на этом порту.
6443 Логическая сеть, используемая для виртуальных машин AKS Arc IP-адреса в сети управления Требуется для взаимодействия с API Kubernetes. Если вы используете отдельные виртуальные локальные сети, IP-адреса в сети управления, используемые для Azure Stack HCI и Arc Resource Bridge, должны получать доступ к виртуальным машинам кластера AKS Arc на этом порту.
55 000 IP-адреса в сети управления Логическая сеть, используемая для виртуальных машин AKS Arc Сервер gRPC облачного агента При использовании отдельных виртуальных ЛС виртуальные машины AKS Arc должны получить доступ к IP-адресам в сети управления, используемой для IP-адреса облачного агента и IP-адреса кластера на этом порту.
65000 IP-адреса в сети управления Логическая сеть, используемая для виртуальных машин AKS Arc Проверка подлинности gRPC облачного агента При использовании отдельных виртуальных ЛС виртуальные машины AKS Arc должны получить доступ к IP-адресам в сети управления, используемой для IP-адреса облачного агента и IP-адреса кластера на этом порту.

Исключения URL-адресов брандмауэра

Сведения о списке разрешенных URL-адресов брандмауэра Или прокси-сервера Azure Arc см. в разделах Требования к сети к мосту ресурсов Azure Arc и Требования к сети Azure Stack HCI 23H2.

Для развертывания и работы кластеров Kubernetes следующие URL-адреса должны быть доступны со всех физических узлов и виртуальных машин AKS Arc в развертывании. Убедитесь, что в конфигурации брандмауэра разрешены следующие URL-адреса:

URL-адрес Порт Служба Примечания
https://mcr.microsoft.com 443 Реестр контейнеров Майкрософт Используется для официальных артефактов Майкрософт, таких как образы контейнеров.
https://*.his.arc.azure.com 443 Служба удостоверений Azure Arc Используется для управления удостоверениями и доступом.
https://*.dp.kubernetesconfiguration.azure.com 443 Kubernetes Используется для конфигурации Azure Arc.
https://*.servicebus.windows.net 443 Подключение к кластеру Используется для безопасного подключения к кластерам Kubernetes с поддержкой Azure Arc без необходимости включения входящего порта в брандмауэре.
https://guestnotificationservice.azure.com 443 Служба уведомлений Используется для операций уведомления гостей.
https://*.dp.prod.appliances.azure.com 443 Служба плоскости данных Используется для операций плоскости данных для моста ресурсов ((модуль)).
*.data.mcr.microsoft.com
azurearcfork8s.azurecr.io
linuxgeneva-microsoft.azurecr.io
pipelineagent.azurecr.io
ecpacr.azurecr.io
443 Скачивание агента Используется для загрузки образов и агентов.
*.prod.microsoftmetrics.com
*.prod.hot.ingestion.msftcloudes.com
dc.services.visualstudio.com
*.prod.warm.ingest.monitor.core.windows.net
gcs.prod.monitoring.core.windows.net
443 Наблюдение за работоспособностью системы и метриками Используется для метрик и мониторинга трафика телеметрии.
*.blob.core.windows.net
*.dl.delivery.mp.microsoft.com
*.do.dsp.mp.microsoft.com
443 TCP Используется для скачивания образов моста ресурсов ((модуль)).
https://azurearcfork8sdev.azurecr.io 443 Kubernetes Используется для скачивания образов контейнеров Azure Arc для Kubernetes.
https://adhs.events.data.microsoft.com 443 Телеметрия ADHS — это служба телеметрии, работающая в ос (модуль)/mariner. Периодически используется для отправки необходимых диагностических данных в корпорацию Майкрософт с узлов уровня управления. Используется, когда данные телеметрии сходит с mariner, что означает любой уровень управления Kubernetes.
https://v20.events.data.microsoft.com 443 Телеметрия Используется периодически для отправки необходимых диагностических данных в корпорацию Майкрософт с узла Windows Server.
gcr.io 443 Реестр контейнеров Google Используется для официальных артефактов Kubernetes, таких как базовые образы контейнеров.
pypi.org 443 Управление Проверьте версии Kubernetes и Python.
*.pypi.org 443 Управление Проверьте версии Kubernetes и Python.
https://hybridaks.azurecr.io 443 Образ контейнера Требуется для доступа к образу оператора HybridAKS.
aka.ms 443 az extensions Требуется для скачивания расширений Azure CLI, таких как aksarc и connectedk8s.
*.login.microsoft.com 443 Azure Требуется для извлечения и обновления маркеров Azure Resource Manager.
sts.windows.net 443 Azure Arc Для сценария подключения к кластеру и настраиваемого расположения.
hybridaksstorage.z13.web.core.windows.net 443 Azure Stack HCI Статический веб-сайт AKSHCI, размещенный в службе хранилища Azure.
raw.githubusercontent.com 443 GitHub Используется для GitHub.
www.microsoft.com 80 Официальный веб-сайт Майкрософт. Официальный веб-сайт Майкрософт.
*.prod.do.dsp.mp.microsoft.com 443 Microsoft Update Скачивание образа моста ресурсов ((модуль)).
files.pythonhosted.org 443 Управление Пакет Python.

Дальнейшие действия

Create логических сетей для кластеров Kubernetes в Azure Stack HCI 23H2