Обновление режима IPAM Azure CNI и технологий плоскости данных для кластеров Службы Azure Kubernetes (AKS)

Существующие кластеры Azure Kubernetes Service (AKS) можно обновить до новых режимов управления IP-адресами (IPAM) и технологий плоскости данных для доступа к новейшим функциям и улучшениям поддержки. В этой статье рассматриваются два независимых обновления:

  • Обновление режима IPAM до Azure CNI Overlay. Режим IPAM определяет, как назначаются и маршрутизируются IP-адреса подов (например, из подсети узла, из выделенной подсети подов или из оверлейной сети).
  • Обновление плоскости данных до Azure CNI с помощью Cilium. Плоскость данных — это компонент в кластере, который фактически пересылает пакеты и применяет политику сети на каждом узле.

Эти обновления являются отдельными операциями и не должны выполняться вместе. В частности, плоскость данных Cilium поддерживается в любом режиме Azure CNI IPAM, поэтому вам не нужно сначала выполнить миграцию в Azure CNI Overlay для внедрения Cilium.

Note

При обновлении плоскости данных до Azure CNI Powered by Cilium режим IPAM в кластере не изменяется. Это не миграция между режимами CNI Azure. Это только переключение базовой плоскости данных. Например, кластер с Azure CNI (Node Subnet) после обновления по-прежнему использует Node Subnet; меняется только то, что теперь работу плоскости данных обеспечивает Cilium. Это также относится к Azure CNI с динамическим выделением IP-адресов и кластерам Azure CNI Overlay.

Поддерживаемые пути миграции

Миграция режима IPAM

AKS поддерживает только один путь миграции IPAM — только вперёд. Режим IPAM можно перевести только на Azure CNI Overlay и только из следующих режимов:

  • Миграция кластера Azure CNI (с подсетью узлов) на Azure CNI Overlay.
  • Перенесите кластер Kubenet на Azure CNI Overlay.

Обновление кластера до использования Azure CNI Overlay — это односторонняя необратимая операция. После обновления кластера его нельзя перенести обратно в сетевой режим на основе подсети узла.

Миграция плоскости данных в Azure CNI с помощью Cilium

Миграция плоскости данных Cilium поддерживается из любого режима Azure CNI IPAM, в том числе:

  • Миграция кластера Azure CNI (подсеть нод) на Azure CNI на базе Cilium.
  • Перенесите кластер Azure CNI с динамическим выделением IP-адресов (подсеть Pod) на Azure CNI Powered by Cilium.
  • Перенесите кластер Azure CNI Overlay на Azure CNI на базе Cilium.

Кластеры Kubenet не могут переноситься непосредственно в плоскость данных Cilium. Сначала они должны перейти на Azure CNI Overlay, а затем в рамках отдельной операции перевести плоскость данных на Cilium.

Обновите режим IPAM на Azure CNI Overlay

Обновление существующего кластера до Azure CNI Overlay является необратимым процессом.

Вы можете обновить существующий кластер AKS до Azure CNI Overlay, если кластер:

До сборки ОС Windows 20348.1668 существовало ограничение, связанное с наложением подов Windows, когда неправильно маршрутизировались пакеты от подов сетевого узла через преобразование исходящих сетевых адресов (SNAT). Это ограничение негативно повлияло на кластеры, находящиеся в процессе обновления до Azure CNI Overlay-сети. Чтобы избежать этой проблемы, используйте сборку ОС Windows 20348.1668 или более поздней версии.

Предупреждение

  • Если вы используете настраиваемую azure-ip-masq-agent конфигурацию для включения дополнительных диапазонов IP-адресов, которые не должны отправлять пакеты SNAT из модулей pod, обновление до Azure CNI Overlay может нарушить подключение к этим диапазонам. IP-адреса pod из пространства наложенной сети недоступны для любого элемента вне узлов кластера.

  • Для старых кластеров ConfigMap может оказаться оставшимся от предыдущей версии azure-ip-masq-agent. Если этот объект ConfigMap (именованный azure-ip-masq-agent-config) существует и не намеренно используется, его следует удалить перед обновлением.

  • Если вы не используете настраиваемую ip-masq-agent конфигурацию, то только azure-ip-masq-agent-config-reconciled ConfigMap должна существовать в отношении Azure ip-masq-agent ConfigMap. Он обновляется автоматически во время процесса обновления.

Процесс обновления запускает переустановку пулов узлов одновременно. Обновление каждого пула узлов отдельно до Azure CNI Overlay не поддерживается. Любые сбои сети кластера аналогичны обновлениям образа узла или обновлению версии Kubernetes, где каждый узел в пуле узлов пересоздается.

Обновите существующий кластер сетевого интерфейса контейнеров Azure (CNI), чтобы использовать наложение Azure CNI с помощью az aks update команды.

az aks update \
  --name $CLUSTER_NAME \
  --resource-group $RESOURCE_GROUP \
  --network-plugin azure \
  --network-plugin-mode overlay \
  --pod-cidr 192.168.0.0/16

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

Бесклассовая междоменная маршрутизация (CIDR) для pod также не должна перекрываться с каким-либо адресом виртуальной сети пулов узлов. Например, если адрес виртуальной сети равен 10.0.0.0/8, а узлы находятся в подсети 10.240.0.0/16, --pod-cidr параметр не может перекрываться с 10.0.0.0/8 или существующей службой CIDR в кластере.

Обновление плоскости данных до Azure CNI с помощью Cilium

Azure CNI Powered by Cilium является рекомендуемой и поддерживаемой долгосрочной конфигурацией сети для AKS. Он объединяет плоскость управления Azure CNI с плоскости данных Cilium для обеспечения масштабируемой сети и расширенных возможностей безопасности.

Рекомендации по обновлению

  • Плоскость данных можно перевести на Azure CNI на базе Cilium из любого режима IPAM Azure CNI (подсеть узла, динамическое выделение IP-адресов или оверлейный режим). Вам не нужно сначала переходить на Azure CNI Overlay.
  • Режим IPAM и плоскость данных невозможно обновить в одной операции. Если вы планируете перенести режим IPAM в Azure CNI Overlay и плоскость данных на Azure CNI Powered by Cilium, выполните эти действия как две отдельные операции в любом порядке.
  • Кластеры Kubenet не могут напрямую обновить плоскость данных до Cilium. Сначала переключите режим IPAM на Azure CNI Overlay, а затем обновите плоскость данных.
  • При включении Cilium в кластере, использующем другой подсистеме сетевой политики (Диспетчер сетевых политик Azure или Calico), существующий модуль удаляется и заменяется Cilium. Это изменение может повлиять на поведение политики сети. Дополнительные сведения см. в разделе "Миграция из диспетчера сетевых политик ( NPM) в политику сети Cilium.
  • Обновление плоскости данных до уровня Azure CNI Powered by Cilium не поддерживается в кластерах с пулами узлов Windows.
  • Кластеры с включённой функцией автоматического выделения узлов (NAP) нельзя обновить до Azure CNI Powered by Cilium. В качестве обходного решения отключите NAP перед обновлением, а затем повторно включите его после завершения обновления.

Предупреждение

Процесс обновления запускает переустановку пулов узлов одновременно. Обновление каждого пула узлов отдельно не поддерживается. Любые нарушения сети кластера похожи на обновление образа узла или обновление версии Kubernetes, где каждый узел в пуле узлов переустанавливается. Cilium начинает применять политики сети только после повторного переименовки всех узлов.

Чтобы выполнить обновление, вам потребуется Azure CLI версии 2.52.0 или более поздней. Запустите az --version , чтобы просмотреть текущую установленную версию. Если вам нужно установить или обновить, см. статью "Установка Azure CLI".

Обновите существующий кластер до Azure CNI Powered by Cilium с помощью команды az aks update.

az aks update \
  --name $CLUSTER_NAME \
  --resource-group $RESOURCE_GROUP \
  --network-dataplane cilium