Partekatu honen bidez:


Uso de grupos de nodos de Máquinas virtuales en Azure Kubernetes Service (AKS)

En este artículo, obtendrá información sobre el nuevo tipo de grupo de nodos de Virtual Machines para AKS.

Con los grupos de nodos de máquinas virtuales, AKS administra directamente el aprovisionamiento y el arranque de cada nodo. En el caso de los grupos de nodos de los conjuntos de escalado de máquinas virtuales, AKS administra el modelo de los conjuntos de escalado y lo usa para lograr coherencia en todos los nodos del grupo. Los grupos de nodos de máquinas virtuales le permiten orquestar el clúster con las máquinas virtuales que mejor se adapten a las cargas de trabajo individuales.

Información general

Cómo funciona

Un grupo de nodos consta de un conjunto de máquinas virtuales (VM), donde se designan diferentes tamaños de máquina virtual para admitir distintos tipos de cargas de trabajo. Estos tamaños de máquina virtual, denominados SKU, se clasifican en diferentes familias optimizadas para fines específicos. Para más información, consulte el artículo sobre las SKU de las máquinas virtuales. Con los grupos de nodos de máquina virtual, puede realizar el escalado manual de múltiples SKU o el escalado automático de una sola SKU.

Para habilitar el escalado de varios tamaños de máquina virtual, el tipo de grupo de nodos máquinas virtuales usa un ScaleProfile que contiene configuraciones que indican cómo se puede escalar el grupo de nodos, específicamente la lista deseada de tamaño de máquina virtual y el recuento de cada tamaño. Un ManualScaleProfile es un perfil de escalado que especifica un tamaño de máquina virtual deseado y el recuento total de ese tipo en el grupo de nodos. Solo se permite un único tamaño de máquina virtual en un ManualScaleProfile. Debe crear un ManualScaleProfile independiente para cada tamaño de máquina virtual del grupo de nodos. Al crear un nuevo grupo de nodos de Máquinas Virtuales, se agrega un perfil de escalado manual inicial para un tamaño de máquina virtual utilizando el campo vm-size e incluyendo node-count. También puede agregar más perfiles de escalado manual siguiendo las instrucciones para agregar perfiles de escalado manual.

Los grupos de nodos de máquina virtual también permiten el modo Auto, lo que significa que el grupo de nodos puede usar escalador automático del clúster. Cualquier grupo de nodos de máquina virtual en Auto modo solo puede usar un tamaño de máquina virtual a la vez.

Nota:

Al crear un nuevo grupo de nodos de Virtual Machines, puede tener varios perfiles de escalado y necesita al menos un perfil de escalado manual en el grupo de nodos. Al habilitar el escalador automático de clústeres con grupos de nodos de máquina virtual, debe quitar todos los perfiles de escalado excepto uno, que el grupo de nodos utiliza para la acción de escalado.

Ventajas

Entre las ventajas del tipo de grupo de nodos de máquinas virtuales se incluyen:

  • Flexibilidad: las especificaciones de nodo se pueden actualizar para adaptarse a las necesidades y la carga de trabajo actuales.
  • Control preciso: los controles en el nivel de nodo único permiten especificar y mezclar nodos de diferentes especificaciones para elevar las restricciones a partir de un único modelo y mejorar la coherencia.
  • Eficiencia: puede reducir la superficie de nodo del clúster, lo que simplifica los requisitos operativos.

Los grupos de nodos de máquinas virtuales proporcionan una mejor experiencia para cargas de trabajo dinámicas y requisitos de alta disponibilidad. Los grupos de nodos de máquinas virtuales permiten configurar varias máquinas virtuales de familia similar en un grupo de nodos. La carga de trabajo se programa automáticamente en los recursos disponibles que configure.

Comparación de características

En la tabla siguiente se resalta cómo se comparan los grupos de nodos de máquinas virtuales con los grupos de nodos de conjuntos de escalado estándar.

Tipo de grupo de nodos Capacidades
Grupo de nodos de máquinas virtuales Puede agregar, quitar o actualizar nodos en un grupo de nodos. Los tipos de máquinas virtuales pueden ser cualquier máquina virtual del mismo tipo de familia (por ejemplo, serie D, serie A, etc.). Los grupos de nodos de máquina virtual también permiten el escalado manual de varias SKU.
Grupo de nodos basado en un conjunto de escalado de máquinas virtuales Puede agregar o quitar nodos del mismo tamaño y tipo en un grupo de nodos. Si agrega un nuevo tamaño de máquina virtual al clúster, debe crear un nuevo grupo de nodos.

¿Qué experiencia de escalado de cómputo debo elegir en AKS?

En función de las necesidades de la carga de trabajo, hay varias opciones de escalado de cómputo que se deben tener en cuenta. Consulte los casos de uso de cada uno de ellos:

Limitaciones

  • Los tamaños de máquina virtual especificados en el grupo deben ser del mismo tipo. Por ejemplo, las máquinas virtuales GPU y no GPU o x86 y ARM64 no pueden estar en el mismo grupo de nodos.
  • InifiniBand no está disponible.
  • No se admite la instantánea del grupo de nodos.
  • Todos los tamaños de máquina virtual seleccionados en un grupo de nodos deben ser de una familia de máquinas virtuales similar. Por ejemplo, no se puede mezclar un tipo de máquina virtual de la serie N con un tipo de la serie D en el mismo grupo de nodos.
  • Los grupos de nodos de máquinas virtuales permiten hasta cinco tamaños de máquina virtual diferentes por grupo de nodos.
  • Al usar el escalador automático de clústeres, solo se permite un perfil de escalado. Para habilitar el escalador automático de clústeres en un grupo de nodos de máquina virtual con varios perfiles de escalado, quite todo menos un perfil de escalado.

Requisitos previos

  • Suscripción a Azure. En caso de no tener ninguna, puede crear una gratis.
  • La CLI de Azure, versión 2.73.0 o posterior, instalada y configurada. Para encontrar la versión, ejecute az --version. Para más información sobre cómo instalar o actualizar la CLI de Azure, consulte Instalación de la CLI de Azure.
  • Esta característica requiere kubernetes versión 1.27 o posterior. Para actualizar la versión de Kubernetes, consulte Actualización del clúster de AKS.

Importante

Requisito de red virtual personalizada: si implementa un grupo de nodos de Virtual Machines en una red virtual personalizada, el clúster debe usar una identidad administrada asignada por el usuario con al menos permisos de colaborador de red en la subred de destino. A diferencia de los grupos de nodos del conjunto de escalado de máquinas virtuales, los grupos de nodos de Virtual Machines dependen únicamente de la identidad del clúster para las operaciones de unión a subred y no usan tokens de primera entidad. Los clústeres que usan una identidad administrada asignada por el sistema no superan la validación previa al crear o actualizar un grupo de nodos de Virtual Machines en una red virtual personalizada y devuelven un InvalidParameter error. Para más información sobre cómo configurar una identidad administrada asignada por el usuario para el clúster, consulte Uso de una identidad administrada en AKS.

Creación de un clúster de AKS con grupos de nodos de máquinas virtuales

Nota:

Solo se permite un tamaño de máquina virtual en un perfil de escalado y el límite máximo es cinco perfiles de escalado de máquinas virtuales en total para un grupo de nodos de máquinas virtuales.

Cree un clúster de AKS con grupos de nodos de máquinas virtuales mediante el comando az aks create con la marca --vm-set-type establecida en "VirtualMachines".

En el ejemplo siguiente se crea un clúster denominado myAKSCluster con un grupo de nodos de Virtual Machines que contiene dos nodos, se generan claves SSH, se establece la SKU del equilibrador de carga en estándar y se establece la versión de Kubernetes en 1.31.0:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3"
    --node-count 2 \
    --kubernetes-version 1.31.0

Creación de un clúster de AKS con grupos de nodos de Máquinas virtuales en una red virtual personalizada

Al implementar grupos de nodos de Virtual Machines en una red virtual personalizada, antes de crear el clúster, debe crear una identidad administrada asignada por el usuario y concederle permisos de colaborador de red en la red virtual.

  1. Cree una red virtual y una subred.

    az network vnet create \
        --resource-group myResourceGroup \
        --name myVnet \
        --address-prefixes 10.1.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 10.1.0.0/24
    
  2. Obtenga el identificador de recurso de subred.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group myResourceGroup \
        --vnet-name myVnet \
        --name mySubnet \
        --query id \
        --output tsv)
    
  3. Crear una identidad administrada asignada por el usuario.

    az identity create \
        --name myAKSIdentity \
        --resource-group myResourceGroup
    
  4. Obtenga el ID de entidad de servicio y el ID de recurso de la identidad gestionada.

    IDENTITY_PRINCIPAL_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query principalId \
        --output tsv)
    
    IDENTITY_RESOURCE_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
  5. Asigne el rol de "Network Contributor" a la identidad administrada en la red virtual.

    VNET_ID=$(az network vnet show \
        --resource-group myResourceGroup \
        --name myVnet \
        --query id \
        --output tsv)
    
    az role assignment create \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $VNET_ID
    

    Los permisos concedidos a la identidad administrada del clúster pueden tardar hasta 60 minutos en propagarse. Use el comando siguiente para comprobar el estado.

  6. Cree el clúster de AKS con grupos de nodos de Máquinas virtuales en la red virtual personalizada.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 2 \
        --vnet-subnet-id $SUBNET_ID \
        --assign-identity $IDENTITY_RESOURCE_ID
    

Creación de un clúster con Windows habilitado y un grupo de nodos de máquina virtual Windows

Los grupos de nodos de máquina virtual están disponibles en clústeres habilitados para Windows. En el ejemplo siguiente se crea un clúster denominado myAKSCluster con un grupo de nodos de Virtual Machines. Estos pasos crean un grupo de sistemas Linux al principio.

  1. Cree un nombre de usuario para usarlo como credenciales de administrador para los nodos de Windows Server del clúster. Los siguientes comandos le solicitarán un nombre de usuario y lo asignarán a WINDOWS_USERNAME para usarlo en un comando posterior.

    echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
    
  2. Cree una contraseña para el nombre de usuario de administrador que creó en el paso anterior. La contraseña debe tener un mínimo de 14 caracteres y cumplir los requisitos de complejidad de la contraseña de Windows Server.

    echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
    
  3. Cree un clúster de AKS con grupos de nodos del tipo Windows y Máquinas Virtuales habilitadas, usando el comando az aks create con la marca --vm-set-type establecida en "VirtualMachines".

    az aks create \
       --resource-group myResourceGroup \
       --name myAKSCluster \
       --node-count 2 \
       --enable-addons monitoring \
       --generate-ssh-keys \
       --windows-admin-username $WINDOWS_USERNAME \
       --windows-admin-password $WINDOWS_PASSWORD \
       --vm-set-type "VirtualMachines" \
       --network-plugin azure
    
  4. Agregue un grupo de nodos de Máquinas Virtuales a un clúster existente habilitado para Windows utilizando el comando az aks nodepool add con la marca --vm-set-type configurada en "VirtualMachines". En el ejemplo siguiente se agrega un grupo de nodos de Virtual Machines denominado npwin al clúster myAKSCluster :

    az aks nodepool add
       --resource-group myResourceGroup \
       --cluster-name myAKSCluster \
       --os-type Windows \
       --name npwin \
       --vm-sizes "Standard_D2s_V3" \
       --node-count 1
       --vm-set-type "VirtualMachines"
    

Adición de un grupo de nodos de máquinas virtuales a un clúster existente

Agregue un grupo de nodos de máquinas virtuales a un clúster existente mediante el comando az aks nodepool add con la marca --vm-set-type establecida en "VirtualMachines".

En el ejemplo siguiente se agrega un grupo de nodos de máquinas virtuales denominado myvmpool al clúster myAKSCluster. El grupo de nodos crea un ManualScaleProfile con --vm-sizes establecido en Standard_D4s_v3 y un --node-count de 3.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 3

Adición de un perfil de escalado manual a un grupo de nodos

Agregue un perfil de escalado manual a un grupo de nodos mediante el az aks nodepool manual-scale add con la marca --vm-sizes establecida "Standard_D2s_v3" en y el node-count establecido en 2.

En el ejemplo siguiente se agrega un perfil de escalado manual al grupo de nodos myvmpool del clúster myAKSCluster. El grupo de nodos incluye dos nodos con una SKU de máquina virtual de Standard_D2s_v3:

az aks nodepool manual-scale add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-sizes "Standard_D2s_v3" \
    --node-count 2

Actualizar un perfil de escala manual existente

Actualice un perfil de escalado manual existente en un grupo de nodos mediante el comando az aks nodepool manual-scale update con la marca --vm-sizes establecida en "Standard_D2s_v3".

Nota:

Use el parámetro --current-vm-sizes para especificar el tamaño del grupo de nodos existente que desea actualizar. Puede actualizar --vm-sizes o --node-count. Si usa otras herramientas o API REST, debe usar un campo agentPoolProfiles.virtualMachinesProfile.scale completo al actualizar el perfil de escalado del grupo de nodos.

En el ejemplo siguiente se actualiza un perfil de escalado manual al grupo de nodos myvmpool del clúster myAKSCluster. El comando actualiza el número de nodos a cinco y cambia la SKU de máquina virtual de Standard_D4s_v3 a Standard_D8s_v3:

az aks nodepool manual-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D4s_v3" \
    --vm-sizes "Standard_D8s_v3" \
    --node-count 5

Eliminar un perfil de escalado manual

Elimine un perfil de escalado manual existente mediante el comando az aks nodepool manual-scale delete.

Nota:

El parámetro --current-vm-sizes especifica el tamaño del grupo de nodos existente que se va a eliminar. Al usar otras herramientas o las API REST para actualizar el perfil de escalado del grupo de nodos, pase un campo agentPoolProfiles.virtualMachinesProfile.scale completo.

En el siguiente ejemplo, se elimina el perfil de escalado manual para la SKU de máquina virtual Standard_D8s_v3 en el grupo de nodos myvmpool.

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

Escalador automático de clústeres con grupos de nodos de máquinas virtuales (versión preliminar)

Los grupos de nodos de Virtual Machines admiten el escalador automático del clúster. Esto se puede habilitar mediante la marca --enable-cluster-autoscaler durante la creación del clúster, al agregar un nuevo grupo de nodos o al actualizar un grupo de nodos manual existente.

Al usar el escalador automático de clústeres con grupos de nodos de máquina virtual,

  • Escalado vertical: el escalador automático responde a la presión de los pods pendientes y aumenta el número de nodos de un grupo de nodos con el mismo tipo de SKU única dentro de ese grupo.
  • Escalamiento hacia abajo: el escalador automático elige un nodo específico en función de la utilización del nodo. Puede configurar scale-down-utilization-thresholdpara ajustar cuando el escalado automático del clúster desencadena una acción de escalado. Consulte la documentación del escalador automático de clústeres para obtener más información sobre cómo configurar el escalado automático.

Limitaciones

  • Esta característica solo está disponible en la nube pública.
  • Actualmente no se admiten nodos de GPU.

Requisitos

  • Para habilitar el escalador automático de clústeres con grupos de nodos de máquina virtual, el grupo de nodos solo debe usar un tamaño de máquina virtual. Todos los demás perfiles de escalado manual deben eliminarse antes de habilitar el escalador automático del clúster.

Instalación de la extensión aks-preview

Importante

Las características en versión preliminar de AKS están disponibles a elección del usuario y en régimen de autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension
    az extension update --name aks-preview

Registro de marca de característica

Registre la marca VMsAgentAutoscalePreview de característica de vista previa usando el comando az feature register.

    az feature register --namespace Microsoft.ContainerService --name VMsAgentPoolAutoscalePreview

Creación de un clúster de AKS con grupos de nodos de Máquinas virtuales y escalador automático de clúster habilitado

  • Cree un clúster de AKS con grupos de nodos de máquinas virtuales mediante el comando az aks create con la bandera --vm-set-type establecida en "VirtualMachines" y con la bandera --enable-cluster-autoscaler.

En el ejemplo siguiente se crea un clúster denominado myAKSCluster con un grupo de nodos de Virtual Machines con un tamaño de grupo de nodos de "Standard_D4s_v3" número mínimo de nodos de 2, el número máximo de nodos de 5 y establece la versión de Kubernetes en 1.32.5:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" 
    --min-count 2 \
    --max-count 5 \
    --kubernetes-version 1.32.5

Adición de un grupo de nodos de Virtual Machines con el escalador automático de clúster habilitado para un clúster existente

  • Cree un grupo de nodos de máquinas virtuales usando el comando az aks nodepool add con el indicador --vm-set-type configurado en "VirtualMachines" y con el indicador --enable-cluster-autoscaler.

En el ejemplo siguiente se agrega el grupo de nodos de Máquinas Virtuales myvmpool con el escalador automático de clúster habilitado a un clúster denominado myAKSCluster utilizando el tamaño de máquina virtual "Standard_D4s_v3", con un número mínimo de nodos de 2 y un máximo de 5.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler
    --min-count 2 \
    --max-count 5 \

Actualización de la configuración del escalador automático de clústeres para un grupo de nodos de Virtual Machines con el escalador automático de clúster habilitado

  • Actualice la configuración del recuento de nodos del escalador automático del clúster para un grupo de nodos de Virtual Machines mediante el az aks nodepool update comando, con la marca --vm-set-type establecida en "VirtualMachines" y con la marca --update-cluster-autoscaler.

En el ejemplo siguiente se actualiza la configuración del grupo de nodos myvmpool de Máquinas virtuales en el clúster denominado myAKSCluster mediante el tamaño de máquina virtual "Standard_D4s_v3":

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --update-cluster-autoscaler \
    --node-vm-size "Standard_D4s_v3" \
    --min-count 2 \
    --max-count 5

Actualización de un grupo de nodos de Virtual Machines desde el modo manual al escalador automático de clúster habilitado

Nota:

La actualización de un grupo de nodos de Virtual Machines de modo manual a automático solo se permite cuando el grupo de nodos tiene un único perfil de escalado manual.

Si el grupo de nodos de la máquina virtual tiene varios perfiles de escalado manual, debe quitar todos los perfiles de escalado manual, excepto el tamaño seleccionado que desee con fines de escalado automático. Consulte el ejemplo siguiente que elimina el perfil de escalado manual en el grupo de nodos "myvmpool" para el tamaño Standard_D8s_v3de máquina virtual:

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

En el ejemplo siguiente, se actualiza el grupo de nodos myvmpool de Virtual Machines en el clúster denominado myAKSCluster del modo Manual al modo Auto:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Deshabilitación del escalador automático de clústeres en el grupo de nodos de Virtual Machines

Puede desactivar el escalador automático del clúster o cambiar el modo del clúster de Auto a Manual.

En el ejemplo siguiente se actualiza el grupo de nodos myvmpool de VIrtual Machines en el clúster denominado myAKSCluster de Manual modo a Auto modo:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --disable-cluster-autoscaler

Pasos siguientes

En este artículo, aprendiste a usar grupos de nodos de máquinas virtuales en AKS. Para más información acerca de los grupos de nodos en AKS, consulte Creación de grupos de nodos.