Compartilhar via


Criar um cluster de provisionamento automático de nós (NAP) em uma rede virtual personalizada no Serviço de Kubernetes do Azure (AKS)

Este artigo mostra como criar uma rede virtual (VNet) e uma sub-rede, criar uma identidade gerenciada com permissões para acessar a VNet e criar um cluster AKS (Azure Kubernetes Service) em sua VNet personalizada com o provisionamento automático de nó (NAP) habilitado.

Pré-requisitos

Limitações

Criar a rede virtual e a sub-rede

Importante

Ao usar uma VNet personalizada com NAP, tenha em mente as seguintes informações:

  • Você deve criar e delegar uma sub-rede de servidor de API para Microsoft.ContainerService/managedClusters, o que concede permissões para o serviço AKS injetar os pods do servidor de API e o balanceador de carga interno nessa sub-rede. Você não pode usar a sub-rede para outras cargas de trabalho, mas pode usá-la para vários clusters do AKS localizados na mesma VNet. O tamanho mínimo de sub-rede do servidor de API com suporte é /28.
  • Todo o tráfego dentro da VNet é permitido por padrão. No entanto, se você adicionou regras de NSG (grupo de segurança de rede) para restringir o tráfego entre sub-redes diferentes, será necessário garantir que você configure as permissões adequadas. Para obter mais informações, consulte a documentação do grupo de segurança de rede.
  1. Crie uma VNet usando o az network vnet create comando.

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Crie uma sub-rede usando o az network vnet subnet create comando e delega-a para 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
    

Criar uma identidade gerenciada e conceder permissões para acessar a VNet

  1. Crie uma identidade gerenciada usando o comando az identity create.

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. Obtenha a ID principal da identidade gerenciada e defina-a como uma variável de ambiente usando o comando [az identity show][az-identity-show].

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Atribua a função Colaborador de Rede à identidade gerenciada usando o az role assignment create comando.

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

Criar um cluster do AKS com provisionamento automático de nó (NAP) em uma VNet personalizada

  1. Crie um cluster do AKS com NAP habilitado em sua VNet personalizada usando o az aks create comando. Para habilitar o NAP, defina o flag --node-provisioning-mode como Auto.

    O comando a seguir também define --network-plugin como azure, --network-plugin-mode como overlay e --network-dataplane como cilium. Para obter mais informações sobre as configurações de rede compatíveis com o NAP, consulte Configurar a rede para provisionamento automático de nós no 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
    

    Após alguns minutos, o comando será concluído e retornará informações no formato JSON sobre o cluster.

  2. Configure o kubectl para se conectar ao cluster do Kubernetes usando o comando az aks get-credentials. Este comando baixa as credenciais e configura a CLI do Kubernetes para usá-las.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Verifique a conexão com o cluster usando o comando kubectl get. Esse comando retorna uma lista dos nós de cluster.

    kubectl get nodes
    

Próximas etapas

Para obter mais informações sobre o provisionamento automático de nós no AKS, consulte os seguintes artigos: