Usar os grupos de posicionamento por proximidade para reduzir a latência dos clusters do AKS (Serviço de Kubernetes do Azure)

Observação

Ao usar os grupos de posicionamento por proximidade no AKS, a colocação só é aplicável aos nós de agente. A latência de nó para nó e de pod para pod hospedado correspondente foi aprimorada. A colocação não afeta o posicionamento do plano de controle de um cluster.

Ao implantar o aplicativo no Azure, a difusão das instâncias de máquina virtual (VM) em todas as regiões ou zonas de disponibilidade cria a latência de rede, o que pode afetar o desempenho geral do aplicativo. Um grupo de posicionamento por proximidade é um agrupamento lógico usado para garantir que os recursos de computação do Azure estejam fisicamente localizados próximos uns dos outros. Alguns aplicativos como jogos, simulações de engenharia e transações de alta frequência (HFT) exigem baixa latência e tarefas que são concluídas rapidamente. Para cenários de computação de alto desempenho (HPC) como esses, use o grupo de posicionamento por proximidade (PPG) para os pools de nós do cluster.

Antes de começar

Este artigo requer a CLI do Azure versão 2.14 ou posterior. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Limitações

  • Um grupo de posicionamento por proximidade pode ser mapeado para no máximo uma zona de disponibilidade.
  • Um pool de nós deve usar os Conjuntos de Dimensionamento de Máquinas Virtuais para associar um grupo de posicionamento por proximidade.
  • Um pool de nós pode associar um grupo de posicionamento por proximidade somente no momento da criação do pool de nós.

Pools de nós e grupos de posicionamento por proximidade

O primeiro recurso implantado com um grupo de posicionamento por proximidade é anexado a um data center específico. Os recursos adicionais implantados com o mesmo grupo de posicionamento por proximidade são colocados no mesmo data center. Depois que todos os recursos que usam o grupo de posicionamento por proximidade tiverem sido interrompidos (desalocados) ou excluídos, eles não serão mais anexados.

  • Você pode associar vários pools de nós a um único grupo de posicionamento por proximidade.
  • Você só pode associar um pool de nós a um único grupo de posicionamento por proximidade.

Configurar os grupos de posicionamento por proximidade com as zonas de disponibilidade

Observação

Embora os grupos de posicionamento por proximidade exijam que um pool de nós use no máximo uma zona de disponibilidade, o SLA da VM do Azure de linha de base de 99,9% ainda estará em vigor para as VMs em uma única zona.

Os grupos de posicionamento por proximidade são um conceito de pool de nós e estão associados a cada pool de nós. O uso de um recurso PPG não afeta a disponibilidade do plano de controle do AKS, o que pode afetar a forma como você deve projetar seu cluster com zonas. Para garantir que um cluster seja distribuído em várias zonas, recomenda-se o design a seguir:

  • Provisione um cluster com o primeiro pool de sistemas usando três zonas e nenhum grupo de posicionamento por proximidade associado para garantir que os pods do sistema cheguem em um pool de nós dedicado, que se espalha por várias zonas.
  • Adicione outros pools de nós do usuário com uma zona exclusiva e um grupo de posicionamento por proximidade associado a cada pool. Um exemplo é o nodepool1 na zona 1 e no PPG1, o nodepool2 na zona 2 e no PPG2, o nodepool3 na zona 3 com o PPG3. No nível do cluster, essa configuração garante que os nós sejam distribuídos em várias zonas e que cada pool de nós seja colocado na zona designada com um recurso PPG dedicado.

Criar um novo cluster do AKS com um grupo de posicionamento por proximidade

A rede acelerada melhora muito o desempenho de rede das máquinas virtuais. O ideal é usar os grupos de posicionamento por proximidade em conjunto com a rede acelerada. Por padrão, o AKS usa a rede acelerada em instâncias de máquinas virtuais com suporte, o que inclui a maioria das máquinas virtuais do Azure com duas ou mais vCPUs.

  1. Crie um grupo de recursos do Azure usando o comando az group create.

    az group create --name myResourceGroup --location centralus
    
  2. Criar um grupo de posicionamento por proximidade por meio do comando az ppg create. Anote o valor da ID na saída.

    az ppg create -n myPPG -g myResourceGroup -l centralus -t standard
    

    O comando produz uma saída semelhante à saída de exemplo a seguir, que inclui o valor de ID necessário para os próximos comandos da CLI.

    {
      "availabilitySets": null,
      "colocationStatus": null,
      "id": "/subscriptions/yourSubscriptionID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG",
      "location": "centralus",
      "name": "myPPG",
      "proximityPlacementGroupType": "Standard",
      "resourceGroup": "myResourceGroup",
      "tags": {},
      "type": "Microsoft.Compute/proximityPlacementGroups",
      "virtualMachineScaleSets": null,
      "virtualMachines": null
    }
    
  3. Crie um cluster do AKS por meio do comando az aks create e substitua o valor myPPGResourceID pela ID do recurso do grupo de posicionamento por proximidade da etapa anterior.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --ppg myPPGResourceID
    

Adicionar um grupo de posicionamento por proximidade a um cluster existente

Você pode adicionar um grupo de posicionamento por proximidade a um cluster existente criando um novo pool de nós. Como opção, você pode migrar as cargas de trabalho existentes para o novo pool de nós e excluir o pool de nós original.

Use o mesmo grupo de posicionamento por proximidade criado anteriormente para garantir que os nós de agente em ambos os pools de nós no cluster do AKS estejam localizados fisicamente no mesmo data center.

  • Crie um novo pool de nós por meio do comando az aks nodepool add e substitua o valor myPPGResourceID pela ID do recurso do grupo de posicionamento por proximidade.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 1 \
        --ppg myPPGResourceID
    

Limpeza

  • Exclua o grupo de recursos do Azure e todos os seus recursos por meio do comando az group delete.

    az group delete --name myResourceGroup --yes --no-wait
    

Próximas etapas

Saiba mais sobre os grupos de posicionamento por proximidade.