Réduire la latence au moyen de groupes de placement de proximité

Notes

Lors de l’utilisation de groupes de placement de proximité sur AKS, la colocation s’applique uniquement aux nœuds d’agent. La latence entre les nœuds et entre les pods hébergés correspondants est plus faible. La colocation n’affecte pas l’emplacement du plan de contrôle d’un cluster.

Quand vous déployez votre application dans Azure, la répartition des instances de machine virtuelle sur différentes régions ou zones de disponibilité engendre une latence au niveau du réseau, qui peut impacter les performances globales de votre application. Un groupe de placement de proximité est un regroupement logique utilisé pour s’assurer que les ressources de calcul Azure se trouvent proches les unes des autres. Certaines applications telles que les jeux, les simulations d’ingénierie et les transactions à haute fréquence (HFT) exigent que la latence soit faible et que les tâches s’exécutent rapidement. Dans ces types de scénarios de calcul haute performance (HPC), envisagez d’utiliser des groupes de placement de proximité (PPG) pour les pools de nœuds de votre cluster.

Avant de commencer

Pour les besoins de cet article, vous devez utiliser Azure CLI version 2.14 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Limites

  • Un groupe de placement de proximité peut mapper à une zone de disponibilité au maximum.
  • Un pool de nœuds doit utiliser Virtual Machine Scale Sets pour associer un groupe de placement de proximité.
  • Un pool de nœuds peut associer un groupe de placement de proximité uniquement lors de la création du pool de nœuds.

Pools de nœuds et groupes de placement de proximité

La première ressource que vous déployez avec un groupe de placement de proximité est attachée à un centre de données spécifique. Les ressources supplémentaires déployées par la suite avec le même groupe de placement de proximité sont colocalisées dans le même centre de données. Une fois que toutes les ressources utilisant le groupe de placement de proximité ont été arrêtées (libérées) ou supprimées, elles ne sont plus attachées.

  • Il est possible d’associer de nombreux pools de nœuds à un seul et même groupe de placement de proximité.
  • Chaque pool de nœuds ne peut être associé qu’à un seul groupe de placement de proximité.

Configurer des groupes de placement de proximité avec des zones de disponibilité

Notes

Alors que les groupes de placement de proximité nécessitent un pool de nœuds pour utiliser tout au plus une zone de disponibilité, le SLA de machine virtuelle Azure de référence de 99,9 % est toujours en vigueur pour les machines virtuelles dans une seule zone.

Les groupes de placement de proximité représentent un concept de pool de nœuds et sont associés à chaque pool de nœuds individuels. L’utilisation d’une ressource PPG n’a aucun impact sur la disponibilité du plan de contrôle AKS. Cela peut avoir un impact sur la façon dont un cluster doit être conçu avec des zones. Pour garantir la répartition d’un cluster sur plusieurs zones, la conception suivante est recommandée.

  • Approvisionnez un cluster avec le premier pool de nœuds système avec trois zones et sans groupe de placement de proximité associé. Cela garantit que les pods du système atterrissent dans un pool de nœuds dédié qui s’étendra sur plusieurs zones.
  • Ajoutez des pools de nœuds utilisateur supplémentaires avec une zone unique et un groupe de placement de proximité associé à chaque pool. Par exemple, nodepool1 dans la zone 1 avec PPG1, nodepool2 dans la zone 2 avec PPG2 et nodepool3 dans la zone 3 avec PPG3. Cela garantit qu’au niveau d’un cluster, les nœuds sont répartis entre plusieurs zones et chaque pool de nœuds individuel est colocalisé dans la zone désignée avec une ressource PPG dédiée.

Créer un cluster AKS avec un groupe de placement de proximité

L’exemple suivant utilise la commande az group create pour créer un groupe de ressources nommé myResourceGroup dans la région centralus. Un cluster AKS nommé myAKSCluster est alors créé à l’aide de la commande az aks create.

L’accélération réseau améliore considérablement les performances des machines virtuelles sur le réseau. Dans l’idéal, utilisez des groupes de placement de proximité conjointement avec l’accélération réseau. Par défaut, AKS utilise l’accélération réseau sur des instances de machines virtuelles prises en charge, ce qui inclut la plupart des machines virtuelles Azure dotées de deux processeurs virtuels ou plus.

Créez un cluster AKS avec un groupe de placement de proximité associé au premier pool de nœuds système :

# Create an Azure resource group
az group create --name myResourceGroup --location centralus

Exécutez la commande suivante et notez l’ID qui est retourné :

# Create proximity placement group
az ppg create -n myPPG -g myResourceGroup -l centralus -t standard

La commande génère une sortie, qui contient la valeur id à spécifier dans des commandes CLI ultérieures :

{
  "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
}

Spécifiez l’ID de ressource du groupe de placement de proximité pour la valeur myPPGResourceID dans la commande ci-dessous :

# Create an AKS cluster that uses a proximity placement group for the initial system node pool only. The PPG has no effect on the cluster control plane.
az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --ppg myPPGResourceID

Ajouter un groupe de placement de proximité à un cluster existant

Vous pouvez ajouter un groupe de placement de proximité à un cluster existant en créant un autre pool de nœuds. Vous pouvez ensuite éventuellement migrer les charges de travail existantes vers le nouveau pool de nœuds, puis supprimer le pool de nœuds initial.

Utilisez le même groupe de placement de proximité que celui que vous avez créé précédemment. Vous vous assurez ainsi que les nœuds d’agent dans les deux pools de nœuds de votre cluster AKS se trouvent physiquement dans le même centre de données.

Utilisez l’ID de ressource du groupe de placement de proximité que vous avez créé précédemment, puis ajoutez un nouveau pool de nœuds à l’aide de la commande az aks nodepool add :

# Add a new node pool that uses a proximity placement group, use a --node-count = 1 for testing
az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-count 1 \
    --ppg myPPGResourceID

Nettoyer

Pour supprimer le cluster, utilisez la commande az group delete qui supprime le groupe de ressources AKS :

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

Étapes suivantes