Partager via


Créer un équilibreur de charge MetalLB à l’aide d’Azure Arc et d’Azure CLI

S’applique à : Azure Stack HCI, version 23H2

L’objectif principal d’un équilibreur de charge est de distribuer le trafic entre plusieurs nœuds dans un cluster Kubernetes. Cela peut aider à prévenir les temps d’arrêt et à améliorer les performances globales des applications. AKS activé par Azure Arc prend en charge la création d’une instance d’équilibreur de charge MetalLB sur votre cluster Kubernetes à l’aide de l’extension Arc Kubernetes Runtime k8s.

Prérequis

  • Un cluster Kubernetes avec Azure Arc avec au moins un nœud Linux. Vous pouvez créer un cluster Kubernetes sur Azure Stack HCI 23H2 à l’aide d’Azure CLI ou du Portail Azure. Les clusters AKS sur Azure Stack HCI 23H2 sont activés par défaut par Arc.
  • Vérifiez que vous disposez de suffisamment d’adresses IP pour l’équilibreur de charge. Pour AKS sur Azure Stack HCI 23H2, vérifiez que les adresses IP réservées à l’équilibreur de charge ne sont pas en conflit avec les adresses IP dans les réseaux logiques de machine virtuelle Arc et les adresses IP du plan de contrôle. Pour plus d’informations sur la planification et la mise en réseau des adresses IP dans Kubernetes, consultez Configuration réseau requise pour AKS sur Azure Stack HCI 23H2.
  • Ce guide pratique suppose que vous comprenez le fonctionnement de Metal LB. Pour plus d’informations, consultez la vue d’ensemble de MetalLB dans les clusters Kubernetes Arc.

Installez l’extension Azure CLI .

Exécutez la commande suivante pour installer l’extension Azure CLI nécessaire :

az extension add -n k8s-runtime --upgrade

Activer l’extension MetalLB Arc

Configurez les variables suivantes avant de continuer :

Paramètre Description
$subId ID d’abonnement Azure de votre cluster Kubernetes.
$rgName Groupe de ressources Azure de votre cluster Kubernetes.
$clusterName Nom du cluster Kubernetes.

Option 1 : Activer l’extension MetalLB Arc à l’aide az k8s-runtime load-balancer enable de la commande

Pour activer l’extension MetalLB Arc à l’aide de la commande suivante, vous devez disposer de l’autorisation Graph Application.Read.All. Vous pouvez vérifier si vous disposez de cette autorisation en vous connectant à votre abonnement Azure et en exécutant la commande suivante :

`az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --output json`

Si la commande échoue, contactez votre administrateur de locataire Azure pour obtenir Application.Read.All le rôle.

Si vous disposez de l’autorisation, vous pouvez utiliser la commande pour installer l’extension az k8s-runtime load-balancer enable Arc et inscrire le fournisseur de ressources pour votre cluster Kubernetes. Le --resource-uri paramètre fait référence à l’ID resource manager de votre cluster Kubernetes.

az k8s-runtime load-balancer enable --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName

Option 2 : Activer l’extension Kubernetes MetalLB Arc à l’aide de az k8s-extension add la commande

Si vous n’avez pas d’autorisation Graph Application.Read.All, vous pouvez suivre les étapes suivantes :

  1. Inscrivez le Microsoft.KubernetesRuntime RP si vous ne l’avez pas déjà fait. Notez que vous n’avez besoin d’inscrire qu’une seule fois par abonnement Azure. Vous pouvez également inscrire des fournisseurs de ressources à l’aide du Portail Azure. Pour plus d’informations sur l’inscription des fournisseurs de ressources et les autorisations requises, consultez comment inscrire un fournisseur de ressources.
az provider register -n Microsoft.KubernetesRuntime

Vous pouvez vérifier si le fournisseur de ressources a été inscrit correctement en exécutant la commande suivante.

az provider show -n Microsoft.KubernetesRuntime -o table

Sortie attendue :

Namespace                    RegistrationPolicy    RegistrationState
---------------------------  --------------------  -------------------
Microsoft.KubernetesRuntime  RegistrationRequired  Registered
  1. Pour installer l’extension MetalLB Arc, obtenez l’AppID du fournisseur de ressources d’extension MetalLB, puis exécutez la commande create d’extension. Vous devez exécuter les commandes suivantes une fois par cluster Kubernetes Arc.

Obtenez l’ID d’application de l’extension Arc en exécutant az ad sp list. Pour exécuter la commande suivante, vous devez être user membre de votre locataire Azure. Pour plus d’informations sur l’appartenance des utilisateurs et des invités, consultez les autorisations utilisateur par défaut dans Microsoft Entra ID.

$objID = az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --query "[].id" --output tsv

Une fois que vous avez le $objID, vous pouvez installer l’extension MetalLB Arc sur votre cluster Kubernetes. Pour exécuter la commande ci-dessous, vous devez disposer du rôle contributeur d’extension Kubernetes.

az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking

Déployer l’équilibreur de charge MetalLB sur votre cluster Kubernetes

Vous pouvez maintenant créer un équilibreur de charge pour votre cluster Kubernetes à distance en exécutant la az k8s-runtime load-balancer create commande. Cette commande crée une ressource personnalisée de type IPAddressPool dans l’espace de noms kube-system.

Configurez les variables suivantes avant de continuer :

Paramètre Description
$lbName Nom de votre instance d’équilibreur de charge MetalLB.
$advertiseMode Mode de votre équilibreur de charge MetalLB. Les valeurs prises en charge sont ARP, BGPou Both.
$ipRange Plage IP de l’équilibreur de charge MetalLB en mode ou Both en ARP mode.

Si le mode de publication est BGP ou Both, il crée également une ressource personnalisée de type BGPAdvertisement. Si le mode de publication est ARP ou Both, il crée également une ressource personnalisée de type L2Advertisement:

az k8s-runtime load-balancer create --load-balancer-name $lbName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --addresses $ipRange --advertise-mode $advertiseMode

Créer un homologue BGP pour votre cluster Kubernetes

Créez un homologue BGP pour votre cluster Kubernetes à distance en exécutant la az k8s-runtime bgp-peer create commande. Notez que l’homologue BGP est efficace pour tous les équilibreurs de charge qui ont ou Both publient BGP le mode. La création d’homologues BGP est obligatoire si vous utilisez l’équilibreur de charge MetalLB en mode ou Both en BGP mode.

Configurez les variables suivantes avant de continuer :

Paramètre Description
$peerName Nom de votre homologue BGP.
$myASN Numéro AS à utiliser pour la fin locale de la session.
$peerASN Numéro AS à attendre de la fin distante de la session.
$peerIP Adresse à composer lors de l’établissement de la session.
az k8s-runtime bgp-peer create --bgp-peer-name $peerName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --my-asn $myASN --peer-asn $peerASN --peer-address $peerIP

Étapes suivantes