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.
Crie um grupo de recursos do Azure usando o comando
az group create
.az group create --name myResourceGroup --location centralus
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 --name myPPG --resource-group myResourceGroup --location centralus --type 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 }
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 --generate-ssh-keys
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.
Azure Kubernetes Service