Asignación de grupos de reservas de capacidad a grupos de nodos de Azure Kubernetes Service (AKS)

A medida que cambian las demandas de carga de trabajo, puede asociar los grupos de reservas de capacidad (CRG) existentes a los grupos de nodos de Azure Kubernetes Service (AKS) para garantizar la capacidad asignada para ellos. Los grupos de reserva de capacidad permiten reservar capacidad de proceso en una región de Azure o en una zona de disponibilidad durante cualquier duración de tiempo. Esta característica es útil para cargas de trabajo que requieren capacidad garantizada, como aquellas con patrones de tráfico predecibles o aquellas que necesitan cumplir requisitos de rendimiento específicos.

En este artículo, obtendrá información sobre cómo usar grupos de reserva de capacidad con grupos de nodos en AKS.

Nota:

La eliminación de un grupo de nodos disocia el grupo de nodos implícitamente de cualquier grupo de reserva de capacidad asociado, antes de la eliminación del grupo de nodos. La eliminación de un clúster disocia implícitamente todos los grupos de nodos de un clúster de los grupos de reserva de capacidad asociados.

Requisitos previos para usar grupos de reserva de capacidad con grupos de nodos de AKS

  • Necesita la versión 2.56 o posterior de la CLI de Azure instalada y configurada. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
  • Se necesita un grupo de reserva de capacidad existente con al menos una reserva de capacidad. Si no es así, el grupo de nodos se agrega al clúster con una advertencia y no se asocia ningún grupo de reserva de capacidad.
  • Debe crear una identidad administrada asignada por el usuario con el rol de Contributor para el grupo de recursos que contiene el grupo de reservas de capacidad y asignar la identidad al clúster de AKS. Las identidades administradas asignadas por el sistema no funcionan para esta característica.

Creación de una identidad administrada asignada por el usuario y asignación a un clúster de AKS

  1. Use el comando az identity create para crear una identidad administrada asignada por el usuario.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Obtenga el identificador de la identidad administrada asignada por el usuario mediante el az identity show comando y establézcalo en una variable de entorno.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Asigne el Contributor rol a la identidad asignada por el usuario mediante el az role assignment create comando .

    az role assignment create --assignee $IDENTITY_ID --role "Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
    

    La asignación de roles puede tardar hasta 60 minutos en propagarse.

  4. Asigne la identidad administrada asignada por el usuario a un clúster de AKS nuevo o existente mediante la marca --assign-identity con el comando az aks create or az aks update.

    # Create a new AKS cluster with the user-assigned managed identity
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --generate-ssh-keys
    
    # Update an existing AKS cluster to use the user-assigned managed identity
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> \
        --node-count <node-count> \
        --enable-managed-identity \
        --assign-identity $IDENTITY_ID         
    

Obtener el identificador de un grupo de reserva de capacidad existente

Obtenga el identificador de un grupo de reservas de capacidad existente mediante el az capacity reservation group show comando y establézcalo en una variable de entorno.

CRG_ID=$(az capacity reservation group show --capacity-reservation-group <crg-name> --resource-group <resource-group-name> --query id -o tsv)

Asociar un grupo de reserva de capacidad existente a un nuevo grupo de nodos

Asocie un grupo de reservas de capacidad existente a un nuevo grupo de nodos mediante el comando az aks nodepool add con la marca --crg-id. En el ejemplo siguiente se supone que tiene un CRG denominado "myCRG".

az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID

Asociar un grupo de reserva de capacidad existente con un grupo de nodos existente (Vista previa)

Asocie un grupo de reserva de capacidad existente con un grupo de nodos existente mediante el comando az aks nodepool update con la marca --crg-id.

  • En el caso de los grupos de nodos zonales, esta operación inicia una actualización gradual del grupo de nodos de destino. El proceso de actualización implica el aislamiento y desalojo gradual de todos los nodos, seguido de un reinicio para aplicar el cambio.
  • En el caso de los grupos de nodos no zonales (regionales) durante la versión preliminar, primero escale el grupo de nodos a cero y, a continuación, aplique el grupo de reservas de capacidad.

Prerequisites

  • Instale la aks-preview versión 20.0.0b7 de la extensión CLI de Azure o posterior antes de ejecutar este comando.

  • Asegúrese de que el grupo de reservas de capacidad tiene suficiente capacidad para la estrategia de actualización del grupo de nodos. Cuando maxSurge > 0, reserve capacidad adicional para el valor de sobrecarga máxima. Por ejemplo, un grupo de 10 nodos con maxSurge establecido en 2 puede ejecutar hasta 12 nodos durante una actualización. Esta capacidad adicional no es necesaria para implementaciones solo de maxUnavailable ni para rutas regionales escaladas a cero.

    az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
    

Asociación de un grupo de reservas de capacidad existente a un grupo de nodos del sistema

Para asociar un grupo de reservas de capacidad existente a un grupo de nodos del sistema, debe asignar la identidad administrada asignada por el usuario al clúster con el rol de Contributor durante la creación del clúster. A continuación, puede usar la --crg-id marca para asociar el grupo de reservas de capacidad al grupo de nodos del sistema.

  • Cree un nuevo clúster de AKS con la identidad administrada asignada por el usuario y asócielo al grupo de reserva de capacidad usando las marcas --assign-identity y --crg-id con el comando az aks create.

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --crg-id $CRG_ID \
        --generate-ssh-keys
    

Pasos siguientes: Administración de grupos de nodos en AKS

Para más información sobre cómo administrar grupos de nodos en AKS, consulte Administración de grupos de nodos en Azure Kubernetes Service (AKS).