Partilhar via


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 Azure CLI esteja instalada e configurada. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install Azure CLI.
  • 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         
    

Limitações na utilização de grupos de reserva de capacidade com os pools de nós AKS

Não é possível atualizar um agrupamento de nós existente com um grupo de reservas de capacidade. Em vez disso, precisas de criar um novo pool de nós com o --crg-id flag para o associar ao grupo de reservas de capacidade. Também pode associar um grupo de reserva de capacidade existente a um grupo de nós do sistema durante a criação de um cluster.

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

  • Obtenha o ID de um grupo de reserva 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)
    

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 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 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).