Condividi tramite


Usare i gruppi di posizionamento di prossimità per ridurre la latenza per i cluster del servizio Azure Kubernetes

Nota

Quando si usano gruppi di posizionamento di prossimità nel servizio Azure Kubernetes, la coubicazione si applica solo ai nodi dell'agente. La latenza da nodo a nodo e dal pod ospitato corrispondente alla latenza del pod è stata migliorata. La condivisione non influisce sulla posizione del piano di controllo di un cluster.

Quando si distribuisce un'applicazione in Azure, è possibile creare latenza di rete distribuendo le istanze delle macchine virtuali (VM) in regioni o zone di disponibilità, il che può influire sulle prestazioni complessive dell'applicazione. Un gruppo di posizionamento di prossimità è un raggruppamento logico utilizzato per assicurarsi che le risorse di calcolo di Azure siano fisicamente vicine l'una all'altra. Alcune applicazioni, come i giochi, le simulazioni ingegneristiche e il trading ad alta frequenza (HFT), richiedono una bassa latenza e attività che possono essere completate rapidamente. Per scenari simili di calcolo ad alte prestazioni (HPC), si può prendere in considerazione l'utilizzo di gruppi di posizionamento di prossimità (PPG) per i pool di nodi del cluster.

Operazioni preliminari

Questo articolo richiede l'interfaccia della riga di comando di Azure 2.14 o versioni successive. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Limiti

  • Un gruppo di posizionamento di prossimità può eseguire il mapping a una sola zona di disponibilità.
  • Un pool di nodi deve usare i set di scalabilità di macchine virtuali per associare un gruppo di posizionamento di prossimità.
  • Un pool di nodi può associare un gruppo di posizionamento di prossimità solo al pool di nodi.

Pool di nodi e gruppi di posizionamento di prossimità

La prima risorsa distribuita con un gruppo di posizionamento di prossimità si collega a un data center specifico. Tutte le risorse aggiuntive distribuite con lo stesso gruppo di posizionamento di prossimità si trovano nello stesso data center. Quando tutte le risorse che usano il gruppo di posizionamento di prossimità vengono arrestate (deallocate) o eliminate, non sono più collegate.

  • È possibile associare più pool di nodi a un singolo gruppo di posizionamento di prossimità.
  • È possibile associare un pool di nodi solo a un singolo gruppo di posizionamento di prossimità.

Configurare gruppi di posizionamento di prossimità con zone di disponibilità

Nota

Anche se i gruppi di posizionamento di prossimità richiedono un pool di nodi per l'uso di una sola zona di disponibilità, il contratto di servizio previsto della macchina virtuale di Azure del 99,9% è ancora attivo per le macchine virtuali in una singola zona.

I gruppi di posizionamento di prossimità sono un concetto di pool di nodi e associati a ogni singolo pool di nodi. L'uso di una risorsa PPG non ha alcun impatto sulla disponibilità del piano di controllo del servizio Azure Kubernetes, che può influire su come progettare il cluster con zone. Per assicurarsi che un cluster sia distribuito tra più zone, è consigliabile usare la progettazione seguente:

  • Effettuare il provisioning di un cluster con il primo pool di sistema usando tre zone e nessun gruppo di posizionamento di prossimità associato per garantire che i pod di sistema vengano inseriti in un pool di nodi dedicato, che si estende tra più zone.
  • Aggiungere pool di nodi utente aggiuntivi con un gruppo di posizionamento di zona e prossimità univoco associato a ogni pool. Un esempio è nodepool1 nella zona 1 e PPG1, nodepool2 nella zona 2 e PPG2 e nodepool3 nella zona 3 con PPG3. Questa configurazione garantisce che, a livello di cluster, i nodi vengano distribuiti tra più zone e ogni singolo pool di nodi si trovi nella zona designata con una risorsa PPG dedicata.

Creare un nuovo cluster del servizio Azure Kubernetes con un gruppo di posizionamento di prossimità

La rete accelerata migliora notevolmente le prestazioni di rete delle macchine virtuali. Idealmente, usare gruppi di posizionamento di prossimità con rete accelerata. Per impostazione predefinita, il servizio Azure Kubernetes usa la rete accelerata nelle istanze di macchine virtuali supportate, che includono la maggior parte delle macchine virtuali di Azure con due o più vCPU.

  1. Creare un gruppo di risorse di Azure usando il comando az group create.

    az group create --name myResourceGroup --location centralus
    
  2. Creare un gruppo di posizionamento di prossimità usando il comando az ppg create. Assicurarsi di annotare il valore ID nell'output.

    az ppg create --name myPPG --resource-group myResourceGroup --location centralus --type standard
    

    Il comando genera un output simile all'output di esempio seguente, che include il valore ID necessario per i prossimi comandi dell'interfaccia della riga di comando.

    {
      "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. Creare un cluster del servizio Azure Kubernetes usando il comando az aks create e sostituire il valore myPPGResourceID con l'ID risorsa del gruppo di posizionamento di prossimità del passaggio precedente.

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

Aggiungere un gruppo di posizionamento di prossimità a un cluster esistente

È possibile aggiungere un gruppo di posizionamento di prossimità a un cluster esistente creando un nuovo pool di nodi. Facoltativamente, è possibile eseguire la migrazione dei carichi di lavoro esistenti al nuovo pool di nodi ed eliminare il pool di nodi originale.

Usare lo stesso gruppo di posizionamento di prossimità creato in precedenza per garantire che i nodi agente in entrambi i pool di nodi nel cluster del servizio Azure Kubernetes si trovino fisicamente nello stesso data center.

  • Creare un nuovo pool di nodi usando il comando az aks nodepool add e sostituire il valore myPPGResourceID con l'ID risorsa del gruppo di posizionamento di prossimità.

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

Eseguire la pulizia

  • Eliminare il gruppo di risorse di Azure insieme alle relative risorse usando il comando az group delete.

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

Passaggi successivi

Altre informazioni sui gruppi di posizionamento di prossimità.