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


Создание кластера автоматического обеспечения узлов (NAP) в пользовательской виртуальной сети в службе Azure Kubernetes Service (AKS)

В этой статье показано, как создать виртуальную сеть и подсеть, создать управляемое удостоверение с разрешениями на доступ к виртуальной сети и создать кластер Службы Azure Kubernetes (AKS) в пользовательской виртуальной сети с включенной автоматической подготовкой узла (NAP).

Предпосылки

Ограничения

Создание виртуальной сети и подсети

Это важно

При использовании пользовательской виртуальной сети с NAP следует учитывать следующие сведения:

  • Необходимо создать и делегировать подсеть Microsoft.ContainerService/managedClustersсервера API, которой предоставляются разрешения службы AKS для внедрения модулей pod сервера API и внутренней подсистемы балансировки нагрузки в эту подсеть. Вы не можете использовать подсеть для других рабочих нагрузок, но ее можно использовать для нескольких кластеров AKS, расположенных в одной виртуальной сети. Минимальный поддерживаемый размер подсети сервера API — /28.
  • Весь трафик в виртуальной сети разрешен по умолчанию. Однако если вы добавили правила группы безопасности сети (NSG), чтобы ограничить трафик между разными подсетями, необходимо убедиться, что вы настроили соответствующие разрешения. Дополнительные сведения см. в документации по группе безопасности сети.
  1. Создайте виртуальную сеть с помощью az network vnet create команды.

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Создайте подсеть с помощью команды az network vnet subnet create и делегируйте ее Microsoft.ContainerService/managedClusters.

    az network vnet subnet create \
        --resource-group $RG_NAME \
        --vnet-name $VNET_NAME \
        --name $SUBNET_NAME \
        --delegations Microsoft.ContainerService/managedClusters \
        --address-prefixes 172.19.0.0/28
    

Создать управляемое удостоверение и предоставить ему разрешения на доступ к VNet

  1. Создайте управляемое удостоверение с помощью az identity create команды.

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. Получите основной идентификатор управляемого удостоверения и задайте его переменной среды с помощью команды [az identity show][az-identity-show].

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Назначьте роль участника сети управляемому удостоверению с помощью az role assignment create команды.

    az role assignment create \
        --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME" \
        --role "Network Contributor" \
        --assignee $IDENTITY_PRINCIPAL_ID
    

Создайте кластер AKS с автоматическим обеспечением узлов (NAP) в пользовательской виртуальной сети

  1. Создайте кластер AKS с поддержкой NAP в пользовательской виртуальной сети с помощью az aks create команды. Установите флаг --node-provisioning-mode в значение Auto, чтобы включить NAP.

    Следующая команда также задает --network-plugin в azure, --network-plugin-mode в overlay и --network-dataplane в cilium. Дополнительные сведения о конфигурациях сети, поддерживаемых с помощью NAP, см. в разделе "Настройка сети для автоматической подготовки узлов" в AKS.

    az aks create \
        --name $CLUSTER_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --assign-identity "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$IDENTITY_NAME" \
        --network-dataplane cilium \
        --network-plugin azure \
        --network-plugin-mode overlay \
        --vnet-subnet-id "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$CUSTOM_VNET_NAME/subnets/$SUBNET_NAME" \
        --node-provisioning-mode Auto
    

    Через несколько минут команда завершается и возвращает информацию о кластере в формате JSON.

  2. Настройте kubectl для подключения к вашему кластеру Kubernetes с помощью команды az aks get-credentials. Эта команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Проверьте подключение к кластеру kubectl get с помощью команды. Эта команда возвращает список узлов кластера.

    kubectl get nodes
    

Дальнейшие шаги

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