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


Обновление Azure CNI

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

Обновление до конфигурации Overlay в CNI Azure

Замечание

Можно обновить кластер Azure CNI до наложенного режима, если он соответствует следующим критериям:

  • Кластер находится в Kubernetes версии 1.22+.
  • Не использует функцию динамического выделения IP-адресов pod.
  • Не имеет активированных политик сети. Механизм управления сетевой политикой может быть удален перед обновлением, см. Удаление диспетчера сетевых политик Azure или Calico.
  • Не использует пулы узлов Windows с docker в качестве среды выполнения контейнера.

Замечание

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

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

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

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

Если вы используете настраиваемую конфигурацию агента azure-ip-masq-agent для включения дополнительных диапазонов IP-адресов, для которых пакеты из подов не должны подвергаться SNAT, обновление до 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 для ip-masq-agent Azure, которая автоматически обновляется в процессе обновления.

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

Обновление кластера Azure CNI

Обновите существующий кластер Azure CNI для использования технологии Overlay с помощью команды az aks update.

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16

Этот параметр --pod-cidr требуется при обновлении с устаревшей версии CNI, так как поды должны получать IP из нового пространственного накладного слоя, который не перекрывается с существующей подсетью узла. CiDR pod также не может перекрываться с любым адресом виртуальной сети пулов узлов. Например, если адрес виртуальной сети равен 10.0.0.0/8, а узлы находятся в подсети 10.240.0.0/16, --pod-cidr невозможно перекрываться с 10.0.0.0/8 или существующей службой CIDR в кластере.

Обновление кластера Kubenet

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

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay 

Так как кластер уже использует частный CIDR для Pod, которые не перекрываются с пространством IP виртуальной сети, вам не нужно указывать параметр --pod-cidr, и CIDR Pod остается неизменным, если параметр не используется.

Замечание

При обновлении с Kubenet до CNI Overlay таблица маршрутов больше не требуется для маршрутизации подов. Если кластер использует таблицу маршрутов, предоставленный клиентом, маршруты, которые использовались для перенаправления трафика pod на правильный узел, автоматически удаляются во время операции миграции. Если кластер использует управляемую таблицу маршрутов (AKS создает таблицу маршрутов, которая находится в группе ресурсов узла), эта таблица маршрутов удаляется в рамках миграции.

Обновление кластера подсети узла

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

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay 

Замечание

При обновлении подсети узла обновите только сетевой режим IPAM или только плоскость данных. Обновление обеих одновременно не поддерживается.

Обновление до Azure CNI с помощью Cilium

Замечание

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

  • В кластере нет пулов узлов Windows.

Замечание

Если включить Cilium в кластере с другим движком сетевых политик (например, Azure NPM или Calico), то движок сетевой политики будет удалён и заменён на Cilium. Дополнительные сведения см. в статье "Удаление диспетчера сетевых политик Azure" или "Калифорния".

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

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

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

Используйте следующую команду, чтобы обновить существующий кластер до Azure CNI с помощью Cilium. Замените значения для <clusterName> и <resourceGroupName>:

az aks update --name <clusterName> --resource-group <resourceGroupName> \
  --network-dataplane cilium