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 :
- 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
- 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 , BGP ou 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