Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается процесс установки, конфигурация сети с двумя стеками и пример развертывания рабочей нагрузки для наложения Azure CNI в кластерах Службы Azure Kubernetes (AKS). Общие сведения о сети наложения Azure CNI см. в статье "Обзор сети наложения Azure CNI" в службе Azure Kubernetes (AKS).
Important
Начиная с 30 ноября 2025 г. служба Azure Kubernetes (AKS) больше не поддерживает или предоставляет обновления безопасности для Azure Linux 2.0. Образ узла Linux 2.0 Azure заморожен в выпуске 202512.06.0. Начиная с 31 марта 2026 г. образы узлов будут удалены, и вы не сможете масштабировать пулы узлов. Выполните миграцию в поддерживаемую версию Linux Azure, обновив пулы узлов до поддерживаемой версии Kubernetes или переключив ее на osSku AzureLinux3. Дополнительные сведения см. в вопросе о прекращении поддержки на GitHub и объявлении об устаревании обновлений Azure. Чтобы оставаться в курсе объявлений и обновлений, следуйте заметкам о выпуске AKS.
Prerequisites
- Подписка Azure. Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
- Azure CLI версии 2.48.0 или более поздней версии. Сведения об установке или обновлении Azure CLI см. в статье "Установка Azure CLI".
- Существующая группа ресурсов Azure. Если необходимо создать ее, см. статью "Создание групп ресурсов".
Для сети с двумя стеками требуется Kubernetes версии 1.26.3 или более поздней.
Ключевые параметры кластеров Azure CNI Overlay AKS
В следующей таблице описаны ключевые параметры настройки сети наложения Azure CNI в кластерах AKS:
| Параметр | Description |
|---|---|
--network-plugin |
Установите azure для использования Azure Container Networking Interface (CNI). |
--network-plugin-mode |
Установите overlay для включения наложенной сети Azure CNI. Этот параметр применяется только при условии --network-plugin=azure. |
--pod-cidr |
Укажите для кластера пользовательский блок бесклассовой междоменной маршрутизации (CIDR). Значение по умолчанию — 10.244.0.0/16. |
Поведение по умолчанию для сетевых подключаемых модулей зависит от того, задано ли это явным образом --network-plugin.
- Если не указать
--network-plugin, AKS по умолчанию использует Azure CNI Overlay. - При указании
--network-plugin=azureи опущении--network-plugin-modeAKS намеренно использует режим виртуальной сети (подсети узла) для обратной совместимости.
Создание кластера AKS с наложением Azure CNI
Создайте оверлейный кластер AKS с помощью Azure CNI, воспользовавшись az aks create с --network-plugin=azure и --network-plugin-mode=overlay. Если вы не укажете значение для --pod-cidr, AKS назначит значение 10.244.0.0/16 по умолчанию.
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--location $REGION \
--network-plugin azure \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16 \
--generate-ssh-keys
Добавление нового пула узлов в выделенную подсеть
Добавьте пул узлов в другую подсеть в одной виртуальной сети для управления IP-адресами узла виртуальной машины для сетевого трафика в виртуальную сеть или пиринговые ресурсы виртуальной сети.
Добавьте новый пул узлов в кластер с помощью az aks nodepool add команды и укажите идентификатор ресурса подсети с параметром --vnet-subnet-id . Рассмотрим пример.
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NODE_POOL_NAME \
--node-count 1 \
--mode system \
--vnet-subnet-id $SUBNET_RESOURCE_ID
Сведения о кластерах AKS наложения Azure CNI с сетями с двумя стеками
Вы можете развернуть кластеры Azure CNI Overlay AKS в двухстековом режиме с виртуальной сетью Azure. В этой конфигурации узлы получают как IPv4, так и IPv6-адрес из подсети виртуальной сети Azure. Pod'ы получают IPv4 и IPv6-адреса из другого адресного пространства, в отличие от пространства адресов подсети виртуальной сети Azure, к которой принадлежат узлы. Трансляция сетевых адресов (NAT) затем настраивается таким образом, чтобы поды могли получать доступ к ресурсам в виртуальной сети Azure. Исходный IP-адрес трафика — это NAT-адрес основного IP-адреса узла той же семьи (IPv4 до IPv4 и IPv6до IPv6).
Note
Вы также можете развертывать сетевые кластеры с поддержкой двух стеков, используя Azure CNI на базе Cilium. Дополнительные сведения см. в разделе "Двухстековая сеть с использованием Azure CNI на базе Cilium".
Ограничения сети с двумя стеками
Следующие функции не поддерживаются в сети с двумя стеками:
Ключевые параметры для сети с двумя стеками
В следующей таблице описываются ключевые параметры настройки сети с двумя стеками в кластерах Azure CNI Overlay AKS:
| Параметр | Description |
|---|---|
--ip-families |
Принимает разделенный запятыми список семейств IP-адресов для включения в кластере. Поддерживаются только ipv4 и ipv4,ipv6. |
--pod-cidrs |
Принимает разделённый запятыми список диапазонов IP-адресов в нотации бесклассовой междоменной маршрутизации (CIDR) для назначения IP-адресов pod. Число и порядок диапазонов в этом списке должны соответствовать указанному значению --ip-families. Если вы не предоставляете никаких значений, параметр использует значение 10.244.0.0/16,fd12:3456:789a::/64по умолчанию. |
--service-cidrs |
Принимает список диапазонов IP-адресов в нотации CIDR, разделенных запятыми, для назначения IP-адресов сервисов. Число и порядок диапазонов в этом списке должны соответствовать указанному значению --ip-families. Если вы не предоставляете никаких значений, параметр использует значение 10.0.0.0/16,fd12:3456:789a:1::/108по умолчанию. Назначенная --service-cidrs подсеть IPv6 не может быть больше /108. |
Создание кластера AKS с наложенной сетью Azure CNI и двухстековой сетью (Linux)
Создайте группу ресурсов Azure для кластера с помощью
az group createкоманды:az group create --location $REGION --name $RESOURCE_GROUPСоздайте кластер AKS с двумя стеками с помощью
az aks createкоманды с заданным параметром--ip-familiesipv4,ipv6:az aks create \ --location $REGION \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --network-plugin azure \ --network-plugin-mode overlay \ --ip-families ipv4,ipv6 \ --generate-ssh-keys
Создайте кластер Azure CNI Overlay AKS с поддержкой двустековой сети (Windows)
Important
Функции предварительной версии AKS доступны на основе самообслуживания. Предварительные версии предоставляются "как есть" и "как доступны", и они исключены из соглашений об уровне обслуживания и ограниченной гарантии. Предварительные версии AKS частично охватываются поддержкой клиентов на основе наилучших усилий. Таким образом, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения см. в следующих статьях о поддержке:
Прежде чем создать кластер Azure CNI Overlay AKS с двумя стеками сети с пулами узлов Windows, необходимо установить aks-preview расширение Azure CLI и зарегистрировать AzureOverlayDualStackPreview флаг компонента в подписке.
Установка расширения Azure CLI aks-preview
aks-previewУстановите расширение с помощьюaz extension addкоманды:az extension add --name aks-previewОбновите до последней версии расширения с помощью
az extension updateкоманды:az extension update --name aks-preview
Регистрация флага компонента AzureOverlayDualStackPreview
Зарегистрируйте
AzureOverlayDualStackPreviewфлаг функции с помощью командыaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "AzureOverlayDualStackPreview"На то, чтобы статус
Registeredотобразился, может потребоваться несколько минут.Проверьте состояние регистрации с помощью
az feature showкоманды:az feature show --namespace "Microsoft.ContainerService" --name "AzureOverlayDualStackPreview"Когда статус отображается
Registered, обновите регистрацию поставщика ресурсовMicrosoft.ContainerServiceпри помощи командыaz provider register.az provider register --namespace Microsoft.ContainerService
Создание кластера AKS с двойным стеком Azure CNI и добавление пула узлов Windows
Создайте кластер с использованием Azure CNI Overlay при помощи команды
az aks create.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --location $REGION \ --network-plugin azure \ --network-plugin-mode overlay \ --ip-families ipv4,ipv6 \ --generate-ssh-keysДобавьте пул узлов Windows в кластер с помощью
az aks nodepool addкоманды:az aks nodepool add \ --resource-group $RESOURCE_GROUP \ --cluster-name $CLUSTER_NAME \ --os-type Windows \ --name $WINDOWS_NODE_POOL_NAME \ --node-count 2
Развертывание примера рабочей нагрузки в кластере AZURE CNI Overlay AKS
Разверните кластеры AKS CNI Overlay с двойным стеком с адресами IPv4/IPv6 на узлах виртуальных машин. Этот пример развертывает веб-сервер NGINX и делает его доступным с помощью LoadBalancer сервиса с IPv4 и IPv6-адресами.
Note
Рекомендуется использовать надстройку маршрутизации приложений для входящего трафика в кластерах AKS. Однако в демонстрационных целях в этом примере развертывается веб-сервер NGINX без надстройки маршрутизации приложений. Дополнительные сведения о надстройке см. в статье Managed NGINX ingress с надстройкой маршрутизации приложений.
Открыть доступ к рабочей нагрузке с помощью LoadBalancer службы
Откройте развертывание NGINX с помощью команд kubectl или манифестов YAML.
Important
В настоящее время существуют два ограничения , относящиеся к службам IPv6 в AKS:
- Azure Load Balancer отправляет пробы работоспособности в назначения IPv6 из локального адреса ссылки. В пулах узлов Azure Linux вы не можете направлять этот трафик в pod, поэтому трафик, поступающий в службы IPv6, развернутые с
externalTrafficPolicy: Cluster, не проходит. - Необходимо развернуть службы IPv6 с помощью
externalTrafficPolicy: Local, что вызываетkube-proxyреагирование на пробу на узле.
Опубликовать развертывание NGINX с помощью команды
kubectl expose deployment nginx.kubectl expose deployment nginx --name=nginx-ipv4 --port=80 --type=LoadBalancer kubectl expose deployment nginx --name=nginx-ipv6 --port=80 --type=LoadBalancer --overrides='{"spec":{"ipFamilies": ["IPv6"]}}'Выходные данные должны отображать предоставляемые службы. Рассмотрим пример.
service/nginx-ipv4 exposed service/nginx-ipv6 exposedПосле доступа к развертыванию и полной настройки служб получите IP-адреса служб с помощью команды
LoadBalancer.kubectl get servicesВыходные данные должны отображать службы с назначенными IP-адресами. Рассмотрим пример.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ipv4 LoadBalancer 10.0.88.78 20.46.24.24 80:30652/TCP 97s nginx-ipv6 LoadBalancer fd12:3456:789a:1::981a 2603:1030:8:5::2d 80:32002/TCP 63sПолучите IP-адрес службы с помощью
kubectl get servicesкоманды и задайте для нее переменную среды:SERVICE_IP=$(kubectl get services nginx-ipv6 -o jsonpath='{.status.loadBalancer.ingress[0].ip}')Проверка функциональности с помощью
curlзапроса от узла, поддерживающего IPv6. (Azure Cloud Shell не поддерживает IPv6.)curl -s "http://[${SERVICE_IP}]" | head -n5Выходные данные должны отображать HTML для страницы приветствия NGINX. Рассмотрим пример.
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style>
Связанный контент
Дополнительные сведения о сети наложения Azure CNI в AKS см. по следующим ссылкам в статьях: