Планирование гибких узлов для AKS (предварительная версия)

Important

Предварительные версии функций AKS доступны на условиях самообслуживания и по выбору пользователя. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS сопровождаются частичной поддержкой клиентов на основе принципа лучших усилий. Как таковые, эти функции не предназначены для использования в производстве. Для получения дополнительной информации ознакомьтесь со следующими статьями поддержки:

Узлы Flex расширяют кластер Azure Kubernetes Service (AKS) на машины Linux, которыми вы управляете за пределами управляемых Azure пулов узлов кластера. Перед добавлением гибкого узла выберите способ проверки подлинности узла в Azure, как он достигает сервера API Kubernetes и как сетевой трафик перемещается между средами AKS и гибкими узлами.

Эта статья поможет вам принять эти решения, спланировать неперекрывающиеся диапазоны адресов и создать общий файл среды для остальных статей о развертывании.

Перед тем как начать

  • Ознакомьтесь с обзором гибких узлов для AKS.
  • Ознакомьтесь с концепциями идентификации и доступа для гибких узлов.
  • Ознакомьтесь с концепциями сети для гибких узлов.
  • Используйте среду Bash, совместимую с Linux, которая имеет необходимые средства и сетевой доступ. В этой серии статей о развертывании эта среда называется вашей средой Bash. Отдельный компьютер, который присоединяется к кластеру, — это хост гибкого узла.
  • Установите Azure CLI. Выполните команду az --version, чтобы узнать установленную версию. Сведения об установке или обновлении см. в разделе Install Azure CLI.
  • Войдите в Azure с учетной записью, которая может считывать целевую подписку и конфигурацию виртуальной сети.
  • Подготовьте существующую Azure виртуальную сеть и подсеть для узлов AKS, управляемых Azure. Виртуальная сеть может находиться в другой группе ресурсов из кластера AKS. В этом случае убедитесь, что идентификатор кластера AKS имеет необходимые разрешения для подсети.

Принятие решений по развертыванию

Перед созданием или настройкой ресурсов спланируйте следующие решения.

Решение Options Что контролирует решение
Идентификатор хоста Управляемый идентификатор, управляемый идентификатор Azure Arc или субъект-служба Как агент Flex Node проходит аутентификацию в Azure
Доступ к API AKS Общедоступный или частный кластер AKS Как ваша среда Bash и хосты гибких узлов определяют адрес API-сервера Kubernetes и получают к нему доступ
Подключение к узлу Flex Подключение на уровне 3 или шлюз WireGuard Unbounded-Net Взаимодействие управляемых AKS узлов, гибких узлов, модулей pod и служб Kubernetes

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

Выбор идентификатора узла

Используйте таблицу принятия решений в концепциях удостоверения и доступа для гибких узлов, чтобы выбрать удостоверение Azure, используемое агентом гибких узлов.

Идентификатор узла авторизует операции Azure. Он не заменяет ни сетевое подключение, ни конфигурацию начальной загрузки Kubernetes, которые необходимы узлу для присоединения к кластеру. Не сохраняйте учетные данные в файле общей среды.

Выбор доступа к общедоступному или частному API AKS

Сервер API Kubernetes — это конечная точка управления для кластера. Ваша среда Bash и каждый хост flex-узла должны иметь возможность разрешать адрес этой конечной точки и подключаться к ней.

  • Доступ к общедоступному API AKS использует безопасную общедоступную конечную точку. Проверка подлинности и авторизация Kubernetes по-прежнему управляют доступом к кластеру. Общедоступная конечная точка API не раскрывает приложения, работающие в кластере.
  • Частный доступ к API AKS использует частную конечную точку в виртуальной сети AKS. Выполните команды Azure CLI, kubectl и настройки кластера в вашей среде Bash, которая должна быть запущена на компьютере, подключенном к этой частной сети. Сеть гибких узлов также должна иметь возможность разрешать частное DNS-имя кластера и направлять трафик к частной конечной точке.

Развертывания гибких узлов поддерживают общедоступный и частный доступ к серверу API. Для закрытого пути требуется дополнительная настройка DNS, маршрутизации и исполнения команд, о которых говорится там, где это применимо. Общие рекомендации по AKS см. в разделе "Планирование сети уровня управления" для AKS, создание частного кластера AKS и подключение к частному кластеру AKS.

Выбор подключения к гибкому узлу

Эта серия развертывания создает кластер AKS без встроенного сетевого подключаемого модуля и устанавливает Unbounded-Net как на управляемых AKS узлах, так и на гибких узлах. Unbounded-Net назначает диапазоны адресов pod и настраивает маршрутизацию между средами AKS и гибкими узлами. В этой статье описывается рабочий процесс. Для других конфигураций CNI или сети может потребоваться другая маршрутизация, брандмауэр, DNS, шлюз, безопасность и жизненный цикл. Описание модели общедоступной предварительной версии сети см. в концепциях сети для гибких узлов.

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

Метод подключения Когда его использовать
Пиринг между виртуальными сетями Кластер AKS и хосты гибких узлов находятся в виртуальных сетях Azure, в том числе в виртуальных сетях в разных регионах.
VPN-шлюз Хосты гибких узлов находятся в локальной инфраструктуре или в другой сети, подключенной к Azure через зашифрованный VPN типа site-to-site.
ExpressRoute Ваша организация использует выделенное частное подключение между сетью и Azure.
шлюз Unbounded-Net WireGuard Между сетями AKS и узлов Flex нет частного маршрутизируемого соединения. Вы настраиваете и управляете туннелями WireGuard в пуле узлов шлюза AKS, а эти узлы шлюза должны быть общедоступными. Предусмотрите пропускную способность и доступность шлюза, так как трафик между подами в разных средах зависит от этого пула. См. общедоступный кластер AKS с лабораторией Unbounded-Net WireGuard.

В пошаговом руководстве Microsoft Learn используется подключение уровня 3 к Unbounded-Net.

AKS API Подключение к узлу Flex Guidance
Public Подключение уровня 3 Рекомендуемая конфигурация
Частная Подключение уровня 3 Требуется дополнительная конфигурация DNS, маршрутизации и выполнения команд
Public Общедоступный шлюз WireGuard Альтернативная топология; см. лаборатории AKSFlexNode
Частная Общедоступный шлюз WireGuard Не рассматриваются в этой документации

Note

Дополнительные примеры топологии см. в лабораториях AKSFlexNode, включая примеры, использующие общедоступный сервер API AKS с шлюзом WireGuard и частным сервером API AKS с управляемыми клиентом сетями. Эти лаборатории дополняют конфигурацию, описанную в этой статье. Эти лаборатории могут использовать различные сетевые компоненты и иметь разные операционные или вспомогательные обязанности. Перед использованием лаборатории просмотрите необходимые условия, ограничения, применимые версии компонентов и обязанности клиента. Лаборатория GitHub не расширяет область поддержки, описанную в Microsoft Learn.

Чтобы предоставить отзыв о топологии, которая не представлена, откройте проблему в репозитории AKSFlexNode. Включите расположение узла flex node, модель доступа к API AKS, предлагаемый метод подключения, предлагаемый CNI и сетевые пути, необходимые для сценария.

Планирование требуемого сетевого подключения

Обратитесь к администратору сети, чтобы обеспечить следующее подключение к сети:

Требование Почему это необходимо
Среда Bash может разрешать и обращаться к серверу API AKS. Это подключение требуется для настройки кластера и управления им.
Каждый хост гибкого узла может разрешать DNS-имя API-сервера AKS и подключаться к нему. Агент FlexNode и kubelet используют это соединение для подключения к кластеру и обмена данными с плоскостью управления Kubernetes.
Узлы, управляемые AKS, и хосты гибких узлов могут обращаться к частным IP-адресам друг друга. Для большинства методов подключения Unbounded-Net использует сети узлов в качестве базового пути между двумя средами.
Трафик служб Pod и Kubernetes может направляться между управляемыми AKS узлами и гибкими узлами. Рабочие нагрузки нуждаются в обмене данными между узлами, DNS кластера и доступе к службе Kubernetes.
Управляющая плоскость AKS может подключаться к kubelet на узле Flex. AKS использует этот путь для операций kubelet, включая kubectl logs, kubectl execи kubectl port-forward.

Вы настраиваете и эксплуатируете внешнюю сеть хоста, включая маршрутизацию, пиринг виртуальных сетей, подключения VPN или ExpressRoute, правила брандмауэра и группы безопасности сети, DNS, параметры прокси-сервера и конфигурацию Unbounded-Net, описанную в этой серии. Сведения о полной модели ответственности см. в политике поддержки для гибких узлов.

Ограничьте доступ к управлению хостом только для разрешённых адресов-источников. Для виртуальной машины Azure свяжите группу безопасности сети с подсетью узла или сетевым интерфейсом. Для узла за пределами Azure применяют эквивалентные элементы управления брандмауэром. Если вы используете az vm create для создания хоста узла Flex, проверьте все правила для общедоступного IP-адреса и группы сетевой безопасности, которые создает эта команда. Если правило SSH не ограничено, оно может разрешить подключения к TCP-порту 22 из любого общедоступного источника.

Соберите значения развертывания

Остальные статьи повторно используют следующие значения.

Общие значения ресурсов Azure

Variable Description Когда он используется
SUBSCRIPTION_ID Подписка, содержащая кластер AKS и связанные Azure ресурсы. При каждом развертывании
RESOURCE_GROUP Группа ресурсов, содержащая кластер AKS. При каждом развертывании
CLUSTER_NAME Имя кластера AKS. При каждом развертывании
FLEX_POOL_NAME Название пула гибких узлов. Используйте только буквы и цифры. При каждом развертывании
AKS_API_ACCESS Модель доступа к API для кластера AKS. Задайте значение public или private. Подготовка кластера и проверка подключения к API
AKS_RESOURCE_ID Azure идентификатор ресурса кластера AKS. Azure предоставляет это значение после существования кластера. Более поздние статьи

Значения кластера и виртуальной сети AKS

Variable Description Когда он используется
LOCATION Регион Azure для кластера AKS. Убедитесь, что этот регион соответствует требованию к доступности региона . Создание кластера AKS
AKS_VNET_NAME Имя виртуальной сети, содержащей подсеть AKS. Поиск и проверка подсети AKS
AKS_VNET_RESOURCE_GROUP Группа ресурсов, содержащая виртуальную сеть AKS. Он может отличаться от RESOURCE_GROUP. Поиск и проверка подсети AKS
AKS_SUBNET_NAME Имя подсети, используемой узлами AKS, управляемыми Azure. Поиск и проверка подсети AKS
AKS_SUBNET_ID Идентификатор ресурса Azure для подсети AKS. Создание кластера AKS
AKS_NODE_VM_SIZE Размер VM Azure для системного пула узлов AKS, управляемого Azure. Это значение не задает размер родительского элемента flex-узла. Создание кластера AKS
SERVICE_CIDR Диапазон адресов для служб Kubernetes. Настройка сетевого профиля кластера AKS
DNS_SERVICE_IP IP-адрес службы DNS Kubernetes. Настройка сетевого профиля кластера AKS

Получите идентификатор ресурса подсети AKS и диапазоны адресов перед созданием файла среды:

az network vnet subnet show \
    --resource-group '<virtual-network-resource-group>' \
    --vnet-name '<virtual-network-name>' \
    --name '<aks-subnet-name>' \
    --query "{ResourceId:id,AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes}" \
    --output json

Значения адресов AKS и Unbounded-Net

Вы используете SERVICE_CIDR и DNS_SERVICE_IP настраиваете сетевой профиль кластера AKS. Настройте узлы и CIDR pod для настройки сайтов Unbounded-Net, используемых в этом пошаговом руководстве.

Узел AKS, pod AKS, гибкий узел, гибкий модуль pod и диапазоны служб Kubernetes должны соответствовать выбранной структуре сети и не должны пересекаться друг с другом или любой сетью, доступной через пиринг виртуальных сетей, VPN или ExpressRoute. Согласуйте итоговые значения с вашим сетевым администратором.

Не копируйте примеры CIDR из другого развертывания. CIDR определяют маршрутизируемое адресное пространство, поэтому повторное использование примера, который пересекается с адресными диапазонами вашей сети Azure или подключённых сетей, может привести к неоднозначной маршрутизации трафика или помешать узлам и pod’ам обмениваться данными друг с другом.

Variable Description Используется кем
AKS_SUBNET_CIDR Диапазон адресов, назначенный подсети для узлов AKS, управляемых Azure. Проверка виртуальной сети Azure и подсети AKS
AKS_NODE_CIDR Unbounded-Net диапазон узлов сайта, содержащий подсеть узла AKS. сайт первичного кластера Unbounded-Net
AKS_POD_CIDR Пул адресов для подов на узлах AKS под управлением Azure. сайт первичного кластера Unbounded-Net
FLEX_HOST_SUBNET_CIDR Диапазон адресов, содержащий хосты узлов Flex. Проверка сети хоста узла Flex
FLEX_NODE_CIDR Unbounded-Net диапазон узлов сайта, который содержит подсеть хоста flex-узла. Сайт Unbounded-Net для гибких узлов
FLEX_POD_CIDR Пул адресов для модулей pod на гибких узлах. Сайт Unbounded-Net для гибких узлов
SERVICE_CIDR Диапазон адресов для служб Kubernetes. Профиль сети кластера AKS
DNS_SERVICE_IP IP-адрес службы DNS Kubernetes. Профиль сети кластера AKS

Примените следующие правила к плану адресов:

  • AKS_SUBNET_CIDR должен содержаться внутри AKS_NODE_CIDR.
  • FLEX_HOST_SUBNET_CIDR должен содержаться внутри FLEX_NODE_CIDR.
  • DNS_SERVICE_IP должен находиться внутри SERVICE_CIDR.

Эти восемь значений не являются восемью отдельными диапазонами. Пять — это независимые диапазоны, которые не должны перекрываться, два — это диапазоны подсети, содержащиеся в соответствующем диапазоне узлов сайта, а один — один IP-адрес внутри диапазона служб.

Следующие значения удовлетворяют каждому правилу в этом разделе. Считайте их иллюстрацией взаимосвязей, а не значениями по умолчанию. Перед их использованием проверьте свои собственные значения в Azure и подключенном сетевом адресном пространстве.

Variable Пример Relationship
AKS_NODE_CIDR 10.10.0.0/16 Независимый диапазон
AKS_SUBNET_CIDR 10.10.1.0/24 Содержится внутри AKS_NODE_CIDR
AKS_POD_CIDR 10.244.0.0/16 Независимый диапазон
FLEX_NODE_CIDR 10.20.0.0/16 Независимый диапазон
FLEX_HOST_SUBNET_CIDR 10.20.1.0/24 Содержится внутри FLEX_NODE_CIDR
FLEX_POD_CIDR 10.245.0.0/16 Независимый диапазон
SERVICE_CIDR 10.96.0.0/16 Независимый диапазон
DNS_SERVICE_IP 10.96.0.10 Внутри SERVICE_CIDR

Просмотрите текущие адресные пространства виртуальной сети Azure:

az network vnet list \
    --query "[].{ResourceGroup:resourceGroup,Name:name,AddressPrefixes:addressSpace.addressPrefixes}" \
    --output table

Azure может определять конфликты в управляемых ресурсах, но он не может проверять диапазоны адресов в каждой подключенной локальной или внешней сети.

Значения версий компонента

Для узлов Flex требуются совместимые версии AKS, расширение Azure CLI, Unbounded-Net и агент гибких узлов. Используйте версии, перечисленные в этой статье, и не выбирайте или не обновляйте эти компоненты независимо.

Variable Description
AKS_VERSION Поддерживаемая версия Kubernetes для кластера AKS.
AKS_PREVIEW_VERSION aks-preview Расширение Azure CLI версии 22.0.0b8 или более поздней.
UNBOUNDED_VERSION Поддерживаемая версия Unbounded-Net.
AKS_FLEX_NODE_VERSION Поддерживаемая версия агента узла Flex.

Региональная доступность

Для узлов Flex необходим выпуск AKS версии v20260904 или более поздней в регионе размещения кластера. AKS автоматически применяет эти релизы по датам, и они не зависят от версии Kubernetes, которую вы задаете в AKS_VERSION.

Прежде чем создавать или выбирать кластер, откройте вкладку «Выпуск AKS» в трекере выпусков AKS, найдите свой регион и проверьте версию в разделе «В настоящее время используется». Версии выпусков AKS имеют формат vYYYYMMDD. Если в вашем регионе отображается более ранняя версия, дождитесь, пока выпуск станет доступен в этом регионе, или, если это допускается вашими требованиями к развертыванию, выберите регион, в котором доступен требуемый выпуск.

Значение локальной рабочей области

Variable Description
WORK_DIR Каталог в среде Bash, где остальные статьи хранят загрузки, созданные файлы и файл kubeconfig кластера. Значение по умолчанию — ~/.local/share/aksflexnode/<deployment-name>. Чтобы сохранить эти файлы в другом месте, например временный каталог, который вы удаляете после развертывания, измените WORK_DIR значение в файле среды.

Создание файла общей среды

Создайте один файл среды для каждого развертывания. Файл обеспечивает согласованность несекретных значений в остальных статьях и сеансах терминала.

Не сохраняйте маркеры доступа, данные начальной загрузки, содержимое kubeconfig, учетные данные субъекта-службы, сертификаты, закрытые ключи сертификата или закрытые ключи SSH в этом файле.

  1. Выберите короткую метку развертывания и создайте защищенный каталог для файла среды.

    export FLEXNODE_DEPLOYMENT="flexnode-demo"
    export FLEXNODE_ENV_DIR="${HOME}/.config/aks-flexnode"
    export FLEXNODE_ENV_FILE="${FLEXNODE_ENV_DIR}/${FLEXNODE_DEPLOYMENT}.env"
    
    install -d -m 0700 "${FLEXNODE_ENV_DIR}"
    
  2. Создайте файл среды.

    if [[ -e "${FLEXNODE_ENV_FILE}" ]]; then
        printf 'Environment file already exists: %s\n' "${FLEXNODE_ENV_FILE}" >&2
        false
    else
        install -m 0600 /dev/null "${FLEXNODE_ENV_FILE}"
    
        cat > "${FLEXNODE_ENV_FILE}" <<'EOF'
    set_flexnode_env() {
        if [[ "$#" -ne 2 || ! "$1" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
            printf 'Usage: set_flexnode_env NAME VALUE\n' >&2
            return 2
        fi
    
        local name="$1"
        local value="$2"
        local temporary_file
    
        temporary_file="$(mktemp "$(dirname "${FLEXNODE_ENV_FILE}")/flexnode.env.XXXXXX")" || return 1
        awk -v prefix="export ${name}=" 'index($0, prefix) != 1 { print }' \
            "${FLEXNODE_ENV_FILE}" > "${temporary_file}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        printf 'export %s=%q\n' "${name}" "${value}" >> "${temporary_file}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        install -m 0600 "${temporary_file}" "${FLEXNODE_ENV_FILE}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        rm -f "${temporary_file}"
        export "${name}=${value}"
    }
    
    # Customer inputs
    export SUBSCRIPTION_ID='<subscription-id>'
    export LOCATION='<supported-aks-region>'
    export RESOURCE_GROUP='<aks-resource-group>'
    export CLUSTER_NAME='<aks-cluster-name>'
    export FLEX_POOL_NAME='<flex-node-pool-name>'
    export AKS_API_ACCESS='<public-or-private>'
    
    # AKS virtual network
    export AKS_VNET_NAME='<virtual-network-name>'
    export AKS_VNET_RESOURCE_GROUP='<virtual-network-resource-group>'
    export AKS_SUBNET_NAME='<aks-subnet-name>'
    export AKS_SUBNET_ID='<aks-subnet-resource-id>'
    
    # Network address ranges
    export AKS_SUBNET_CIDR='<aks-node-subnet-cidr>'
    export AKS_POD_CIDR='<aks-pod-cidr>'
    export AKS_NODE_CIDR='<aks-site-node-cidr>'
    export FLEX_HOST_SUBNET_CIDR='<flex-host-subnet-cidr>'
    export FLEX_NODE_CIDR='<flex-site-node-cidr>'
    export FLEX_POD_CIDR='<flex-node-pod-cidr>'
    export SERVICE_CIDR='<kubernetes-service-cidr>'
    export DNS_SERVICE_IP='<kubernetes-dns-service-ip>'
    
    # Azure-managed AKS system node pool
    export AKS_NODE_VM_SIZE='<supported-and-available-aks-node-vm-size>'
    
    # Compatible component versions for flex nodes (preview)
    export AKS_VERSION='1.36.2'
    export AKS_PREVIEW_VERSION='22.0.0b8'
    export UNBOUNDED_VERSION='v0.8.0'
    export AKS_FLEX_NODE_VERSION='v0.2.0'
    
    # Local paths
    export WORK_DIR="${HOME}/.local/share/aksflexnode/${FLEXNODE_DEPLOYMENT}"
    
    # Values recorded by later articles
    export AKS_RESOURCE_ID=''
    export FLEXNODE_KUBECONFIG=''
    export FLEX_POOL_RESOURCE_ID=''
    export FLEX_MACHINE_NAME=''
    export FLEX_HOST_NAME=''
    export FLEX_HOST_SSH_TARGET=''
    export FLEX_HOST_PRIVATE_IP=''
    export HOST_PRINCIPAL_OBJECT_ID=''
    export HOST_IDENTITY_CLIENT_ID=''
    export SSH_PUBLIC_KEY_PATH=''
    export SSH_PRIVATE_KEY_PATH=''
    export VM_RESOURCE_GROUP=''
    export VM_NAME=''
    export VM_RESOURCE_ID=''
    export ARC_RESOURCE_GROUP=''
    export ARC_MACHINE_NAME=''
    export ARC_RESOURCE_ID=''
    export SP_TENANT_ID=''
    export SP_CLIENT_ID=''
    export SP_OBJECT_ID=''
    EOF
    fi
    

    Вспомогательный элемент set_flexnode_env позволяет в последующих статьях фиксировать значения, созданные Azure, не добавляя в файл дублирующиеся определения.

  3. Откройте ${FLEXNODE_ENV_FILE} в редакторе и замените каждое значение, заключенное в угловые скобки. Оставьте значения в разделе "Значения", записанные более поздними статьями, пустыми .

  4. Убедитесь, что не осталось заполнителей.

    if grep -n '<[^>]*>' "${FLEXNODE_ENV_FILE}"; then
        printf 'Replace the unresolved placeholders before you continue.\n' >&2
        false
    else
        printf 'No unresolved placeholders found.\n'
    fi
    
  5. Загрузите файл среды, создайте рабочий каталог и задайте активную Azure подписку.

    source "${FLEXNODE_ENV_FILE}"
    install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
    az account set --subscription "${SUBSCRIPTION_ID}"
    az account show \
        --query "{Name:name,SubscriptionId:id}" \
        --output table
    

    Убедитесь, что возвращенный идентификатор подписки соответствует SUBSCRIPTION_ID.

    Убедитесь, что AKS_API_ACCESS идентифицирует поддерживаемый путь:

    case "${AKS_API_ACCESS}" in
        public|private)
            printf 'AKS API access: %s\n' "${AKS_API_ACCESS}"
            ;;
        *)
            printf 'Set AKS_API_ACCESS to public or private.\n' >&2
            false
            ;;
    esac
    

    Запустите каждый новый сеанс терминала, задав метку развертывания и загрузив файл среды:

    export FLEXNODE_DEPLOYMENT="flexnode-demo"
    export FLEXNODE_ENV_FILE="${HOME}/.config/aks-flexnode/${FLEXNODE_DEPLOYMENT}.env"
    test -s "${FLEXNODE_ENV_FILE}"
    source "${FLEXNODE_ENV_FILE}"
    install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
    

Проверьте значения планирования

Проверьте выбранную подсеть AKS.

az network vnet subnet show \
    --resource-group "${AKS_VNET_RESOURCE_GROUP}" \
    --vnet-name "${AKS_VNET_NAME}" \
    --name "${AKS_SUBNET_NAME}" \
    --query "{AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes,ResourceId:id}" \
    --output json

Убедитесь, что возвращенный идентификатор ресурса и диапазон адресов совпадают AKS_SUBNET_ID и AKS_SUBNET_CIDR.

Следующий шаг

Затем подготовьте кластер AKS для гибких узлов. В следующей статье создается общедоступный или частный кластер AKS и записывается идентификатор ресурса кластера.