Atribuir grupos de reserva de capacidade aos conjuntos de nós do Azure Kubernetes Service (AKS)

À medida que as exigências da sua carga de trabalho mudam, pode associar grupos de reserva de capacidade (CRGs) existentes aos seus pools de nós do Azure Kubernetes Service (AKS) para garantir a capacidade alocada para eles. Os grupos de reserva de capacidade permitem-lhe reservar capacidade de computação numa região Azure ou zona de disponibilidade por qualquer período de tempo. Esta funcionalidade é útil para cargas de trabalho que requerem capacidade garantida, como aquelas com padrões de tráfego previsíveis ou aquelas que precisam de cumprir requisitos específicos de desempenho.

Neste artigo, irá aprender como usar grupos de reserva de capacidade com conjuntos de nós no AKS.

Observação

A exclusão de um conjunto de nós dissocia automaticamente esse conjunto de qualquer grupo associado de reserva de capacidade antes de ser excluído. A exclusão de um cluster dissocia implicitamente todos os conjuntos de nós desse cluster dos seus grupos associados de reserva de capacidade.

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

  • Precisas que a versão 2.56 ou posterior do CLI do Azure esteja instalada e configurada. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure.
  • Precisa de um grupo de reserva de capacidade existente com pelo menos uma reserva de capacidade. Caso contrário, o pool de nós é adicionado ao cluster com um aviso e nenhum grupo de reserva de capacidade é associado.
  • É necessário criar uma identidade gerida atribuída pelo utilizador com a Contributor função do grupo de recursos que contém a reserva de capacidade e atribuir a identidade ao seu AKS cluster. As identidades geridas atribuídas pelo sistema não funcionam para esta funcionalidade.

Crie uma identidade gerida atribuída pelo utilizador e atribua-a a um cluster AKS

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

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Obtenha o ID da identidade gerida atribuída pelo utilizador usando o az identity show comando e defina-o para 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 o papel Contributor à identidade atribuída pelo utilizador com o comando az role assignment create.

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

    Pode demorar até 60 minutos para que a atribuição do papel se propage.

  4. Atribua a identidade gerida atribuída pelo utilizador a um novo ou existente cluster AKS, utilizando 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         
    

Obtenha o ID de um grupo de reservas de capacidade já existente

Obtenha o ID de um grupo de reservas de capacidade existente usando o az capacity reservation group show comando e defina-o para 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)

Associe um grupo de reservas de capacidade existente a um novo pool de nós

Associe um grupo de reserva de capacidade existente a um novo conjunto de nós utilizando o comando az aks nodepool add com a opção --crg-id. 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 existente (Pré-visualização)

Associe um grupo de reserva de capacidade existente a um conjunto de nós existente utilizando o comando az aks nodepool update com a opção --crg-id.

  • Para pools de nós zonais, esta operação inicia uma atualização contínua do pool de nós alvo. O processo de atualização envolve o cordão rotativo e drenagem de todos os nós, seguido de um reinício para aplicar a alteração.
  • Para pools de nós não zonais (regionais) durante a pré-visualização, primeiro escale o pool de nós até zero e depois aplique o grupo de reserva de capacidade.

Prerequisites

  • Instale a versão aks-preview da 20.0.0b7 extensão CLI do Azure ou posterior antes de executar este comando.

  • Garante que o grupo de reserva de capacidade tem capacidade suficiente para a tua estratégia de atualização do pool de nós. Quando maxSurge > 0, reserve capacidade extra para o valor máximo de pico . Por exemplo, um pool de 10 nós com maxSurge definido como 2 pode executar até 12 nós durante uma atualização. Esta capacidade extra não é necessária para implementações apenas com maxUnavailable nem para rotas regionais reduzidas a zero.

    az aks nodepool update --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 nodo do sistema

Para associar um grupo de reservas de capacidade existente a um pool de nós do sistema, é necessário atribuir a identidade gerida atribuída pelo utilizador com a função Contributor ao cluster durante a criação do cluster. Podes então usar a --crg-id flag para associar o grupo de reservas de capacidade ao pool de nós do sistema.

  • Crie um novo cluster AKS com a identidade gerida atribuída a utilizador e associe-o ao grupo de reservas de capacidade usando as sinalizações --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: Gerir pools de nós no AKS

Para saber mais sobre a gestão de pools de nós no AKS, consulte Gerir pools de nós no Azure Kubernetes Service (AKS).