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


Режимы IPAM для обновления Служба Azure Kubernetes (AKS) и технология dataplane

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

Обновление существующего кластера до наложения Azure CNI

Примечание.

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

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

Примечание.

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

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

До сборки ОС Windows 20348.1668 было ограничение вокруг модулей pod Windows Overlay неправильно SNATing пакетов из сетевых модулей pod узла, которые имели более вредный эффект для кластеров, обновляющихся до 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, существует и не намеренно находится на месте, его следует удалить перед выполнением команды обновления. Если не используется настраиваемая конфигурация config-ip-masq-agent, то только azure-ip-masq-agent-config-reconciled ConfigMap должна существовать в отношении конфигурации ConfigMap для Azure ip-masq-agent, и это будет обновляться автоматически во время обновления.

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

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

Обновите существующий кластер Azure CNI, чтобы использовать наложение с помощью команды [][az aks updateaz-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, так как модули pod должны получать 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 с помощью команды [az aks update][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 таблица маршрутов больше не потребуется для маршрутизации pod. Если кластер использует таблицу маршрутов, предоставленный клиентом, маршруты, используемые для перенаправления трафика pod на правильный узел, будут автоматически удалены во время операции миграции. Если кластер использует управляемую таблицу маршрутов (таблица маршрутов была создана AKS и находится в группе ресурсов узла), то эта таблица маршрутов будет удалена в рамках миграции.

Обновление существующего кластера до Azure CNI с помощью CILIUM

Примечание.

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

Примечание.

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

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

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

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

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

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