Creación de un clúster de aprovisionamiento automático de nodos (NAP) en una red virtual personalizada en Azure Kubernetes Service (AKS)

En este artículo se muestra cómo crear un clúster de Azure Kubernetes Service (AKS) con el aprovisionamiento automático de nodos (NAP) habilitado en una red virtual personalizada (VNet). Cree una red virtual y una subred y, a continuación, conceda a una identidad administrada acceso a la red virtual.

Prerrequisitos

Limitaciones

Establecimiento de variables de entorno y creación de un grupo de recursos

  1. Establezca las variables de entorno que se usan en este artículo. Reemplace los valores de los marcadores de posición por sus propios valores.

    export SUBSCRIPTION_ID="<subscription-id>"
    export RG_NAME="<resource-group-name>"
    export LOCATION="<location>"
    export VNET_NAME="<vnet-name>"
    export SUBNET_NAME="<subnet-name>"
    export IDENTITY_NAME="<managed-identity-name>"
    export CLUSTER_NAME="<cluster-name>"
    
  2. Seleccione la suscripción Azure mediante el az account set comando .

    az account set --subscription $SUBSCRIPTION_ID
    
  3. Cree un grupo de recursos con el comando az group create.

    az group create \
        --name $RG_NAME \
        --location $LOCATION
    

Creación de una red virtual y una subred

  1. Cree una red virtual mediante el 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. Cree una subred de nodo mediante el az network vnet subnet create comando .

    az network vnet subnet create \
        --resource-group $RG_NAME \
        --vnet-name $VNET_NAME \
        --name $SUBNET_NAME \
        --address-prefixes 172.19.0.0/24
    

Creación de una identidad administrada y asignación de permisos de red virtual

  1. Crear una identidad administrada usando el comando az identity create.

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. Use el az identity show comando para obtener el identificador de entidad de seguridad de la identidad administrada y guardarlo en una variable de entorno.

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Asigne el rol Colaborador de red a la identidad administrada mediante el az role assignment create comando . El --assignee-principal-type parámetro evita errores causados por retrasos de replicación después de crear la identidad administrada.

    Important

    El rol Colaborador de red en el ámbito de la red virtual concede permisos amplios. Antes de usar este enfoque en producción, revise la configuración de RBAC para las configuraciones de subred personalizadas y considere la posibilidad de asignar permisos de subred con ámbito.

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

Habilitación de NAP y conexión al clúster

Use la identidad administrada, la red virtual y la subred de nodo que creó en las secciones anteriores. El clúster debe usar un Standard Load Balancer, como se describe en Limitaciones.

  1. Cree un clúster de AKS con NAP habilitado en la red virtual personalizada mediante el az aks create comando . En la tabla siguiente se describen los parámetros NAP y de red que se usan en el comando :

    Parámetro Value Description
    --node-provisioning-mode Auto Habilita NAP en el clúster.
    --network-plugin azure Usa Azure CNI para las redes de clúster.
    --network-plugin-mode overlay Usa Azure superposición de CNI para redes de pods.
    --network-dataplane cilium Usa el plano de datos de Cilium.

    Para obtener más información, consulte Introducción a las configuraciones de red para el aprovisionamiento automático de nodos (NAP) en Azure Kubernetes Service (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/$VNET_NAME/subnets/$SUBNET_NAME" \
        --node-provisioning-mode Auto \
        --generate-ssh-keys
    

    Cuando finaliza la creación del clúster, el comando devuelve información con formato JSON sobre el clúster.

  2. Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Compruebe la conexión al clúster con el comando kubectl get. Este comando devuelve una lista de los nodos del clúster.

    kubectl get nodes
    

Pasos siguientes

Para obtener más información sobre el aprovisionamiento automático de nodos en AKS, consulte los siguientes artículos: