Partager via


Déployer l’extension pour MetalLB pour les clusters Kubernetes compatibles avec Azure Arc à l’aide d’Azure CLI

S’applique à : AKS sur Azure Local

Le principal rôle d’un équilibreur de charge est de répartir le trafic entre plusieurs nœuds d’un cluster Kubernetes. Cela permet d’éviter les temps d’arrêt et d’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 d’une extension Arc.

Prerequisites

  • Un cluster Kubernetes avec Azure Arc avec au moins un nœud Linux. Vous pouvez créer un cluster Kubernetes sur Azure Local à l’aide d’Azure CLI ou du portail Azure. L’AKS sur les clusters locaux d’Azure Arc est activé par défaut.
  • Assurez-vous de disposer d’un nombre suffisant d’adresses IP pour l’équilibreur de charge. Pour AKS sur Azure Local, 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 en savoir plus sur la planification des adresses IP et la mise en réseau dans Kubernetes, consultez Configuration réseau requise pour Kubernetes et Planification des adresses IP pour Kubernetes.
  • Ce guide pratique suppose que vous comprenez le fonctionnement de MetalLB. Pour en savoir plus, consultez la rubrique Vue d’ensemble de MetalLB pour les clusters Kubernetes.

Installer l’extension Azure CLI

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

az extension add -n k8s-runtime --upgrade

Activer l’extension Arc pour MetalLB

Avant de commencer, configurez les variables suivantes :

Paramètre Descriptif
$subId ID de l’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 Arc pour MetalLB à l’aide de az k8s-runtime load-balancer enable

Pour activer l’extension Arc pour MetalLB avec la commande ci-dessous, 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 l’administrateur de votre locataire Azure pour obtenir le rôle Application.Read.All.

Si vous disposez de l’autorisation, vous pouvez activer l’extension Arc et enregistrer le fournisseur de ressources pour votre cluster Kubernetes avec la commande az k8s-runtime load-balancer enable. 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 Arc pour MetalLB à l’aide de az k8s-extension add

Si vous ne disposez pas de l’autorisation Graph Application.Read.All, suivez ces étapes :

  1. Inscrivez le fournisseur de ressources Microsoft.KubernetesRuntime RP, si ce n’est pas déjà fait. Cette opération n’a besoin d’être réalisée qu’une seule fois par abonnement Azure. Vous pouvez également inscrire des fournisseurs de ressources via le portail Azure. Pour en savoir plus sur l’inscription des fournisseurs de ressources et les autorisations requises, consultez Inscription d’un fournisseur de ressources.

    az provider register -n Microsoft.KubernetesRuntime
    

    Vérifiez que le fournisseur de ressources est bien inscrit avec la commande ci-dessous.

    az provider show -n Microsoft.KubernetesRuntime -o table
    

    Sortie attendue :

    Namespace                    RegistrationPolicy    RegistrationState
    ---------------------------  --------------------  -------------------
    Microsoft.KubernetesRuntime  RegistrationRequired  Registered
    
  2. Pour installer l’extension Arc pour MetalLB, récupérez l’AppID du fournisseur de ressources de l’extension MetalLB, puis lancez la commande de création d’extension. Vous devez exécuter ces commandes une fois par cluster Kubernetes Arc.

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

    $objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --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 suivante, 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 un équilibreur de charge MetalLB sur votre cluster Kubernetes

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

Avant de commencer, configurez les variables suivantes :

Paramètre Descriptif
$lbName Le nom de votre instance d’équilibreur de charge MetalLB.
$advertiseMode Le mode de fonctionnement de votre équilibreur de charge MetalLB. Les valeurs prises en charge sont ARP, BGP ou Both.
$ipRange La plage d’adresses IP pour l’équilibreur de charge MetalLB en mode ARP ou Both.

Si le mode d’annonce est BGP ou Both, il crée également une ressource personnalisée de type BGPAdvertisement. Si le mode d’annonce 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 pair BGP pour votre cluster Kubernetes

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

Avant de commencer, configurez les variables suivantes :

Paramètre Descriptif
$peerName Nom de votre homologue BGP.
$myASN Numéro AS à utiliser pour la fin locale de la session.
$peerASN Numéro AS à attendre du côté distant 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

Utiliser l’extension GitOps Flux v2 Arc pour déployer des applications sur votre cluster Kubernetes