Compartilhar via


Atribua grupos de reserva de capacidade aos pools de nós do Azure Kubernetes Service (AKS)

À medida que suas demandas de carga de trabalho mudam, você pode associar CRGs (grupos de reserva de capacidade) existentes aos pools de nós do AKS (Serviço de Kubernetes do Azure) para garantir a capacidade alocada para eles. Os grupos de reserva de capacidade permitem que você reserve capacidade de computação em uma região do Azure ou zona de disponibilidade por qualquer período de tempo. Esse recurso é útil para cargas de trabalho que exigem capacidade garantida, como aquelas com padrões de tráfego previsíveis ou aquelas que precisam atender a requisitos de desempenho específicos.

Neste artigo, você aprenderá como usar grupos de reserva de capacidade com pools de nós no AKS.

Observação

Excluir um pool de nós dissocia implicitamente esse pool de nós de qualquer grupo de reserva de capacidade associado antes que o pool de nós seja excluído. Excluir um cluster dissocia implicitamente todos os pools de nós desse cluster de seus grupos de reserva de capacidade associados.

Pré-requisitos para usar grupos de reserva de capacidade com pools de nós do AKS

  • Você precisa da CLI do Azure versão 2.56 ou posterior instalada e configurada. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
  • Você precisa de um grupo de reserva de capacidade existente com pelo menos uma reserva de capacidade. Caso contrário, o conjunto de nós é adicionado ao cluster com um aviso e nenhum grupo de reserva de capacidade é associado.
  • Você precisa criar uma identidade gerenciada designada pelo usuário com a Contributor função para o grupo de recursos que contém o grupo de reserva de capacidade e atribuir a identidade ao cluster do AKS. As identidades gerenciadas atribuídas pelo sistema não funcionam para esse recurso.

Criar uma identidade gerenciada atribuída pelo usuário e atribuí-la a um cluster do AKS

  1. Crie uma identidade gerenciada atribuída pelo usuário usando o comando az identity create.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Obtenha a ID da identidade gerenciada atribuída pelo usuário usando o az identity show comando e defina-a como uma variável de ambiente.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Atribua a Contributor função à identidade atribuída pelo usuário usando o az role assignment create comando.

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

    Pode levar até 60 minutos para que a atribuição de função seja propagada.

  4. Atribua a identidade gerenciada atribuída pelo usuário a um cluster AKS novo ou existente usando o sinalizador --assign-identity com o comando az aks create ou 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         
    

Limitações para o uso de grupos de reserva de capacidade com pools de nós do AKS

Não é possível atualizar um pool de nós existente com um grupo de reserva de capacidade. Em vez disso, você precisa criar um novo pool de nós com a flag --crg-id para associá-lo ao grupo de reserva de capacidade. Você também pode associar um grupo de reserva de capacidade existente a um pool de nós do sistema durante a criação do cluster.

Obter a ID de um grupo de reserva de capacidade existente

  • Obtenha a ID de um grupo de reserva de capacidade existente usando o comando e defina-a az capacity reservation group show como uma variável de ambiente.

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

Associar um grupo de reserva de capacidade existente a um pool de nós

  • Associe um grupo de reserva de capacidade existente a um pool de nós usando o az aks nodepool add comando com o --crg-id flag. O exemplo a seguir pressupõe que você tenha um CRG chamado “myCRG”.

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

Associar um grupo de reserva de capacidade existente a um pool de nós do sistema

Para associar um grupo de reserva de capacidade existente a um pool de nós do sistema, você precisa atribuir a identidade gerenciada atribuída pelo usuário à função Contributor ao cluster durante a criação do cluster. Em seguida, você pode usar a --crg-id flag para associar o grupo de reserva de capacidade ao pool de nós do sistema.

  • Crie um novo cluster AKS com a identidade gerenciada atribuída ao usuário e associe-o ao grupo de reserva de capacidade usando os sinalizadores --assign-identity e --crg-id com o 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
    

Próximos passos: Gerenciamento de pools de nós no AKS

Para saber mais sobre como gerenciar pools de nós no AKS, consulte Gerenciar pools de nós no AKS (Serviço de Kubernetes do Azure).