Utiliser un équilibreur de charge Standard public dans Azure Kubernetes Service (AKS)

Azure Load Balancer est sur la couche 4 (L4) du modèle OSI (Open Systems Interconnection) qui prend en charge les scénarios entrants et sortants. Il distribue les flux entrants arrivant sur le serveur front-end de l’équilibreur de charge sur des instances du pool de back-ends.

Intégré à AKS, un équilibreur de charge public remplit deux fonctions :

  • Fournissez des connexions sortantes aux nœuds du cluster à l’intérieur du réseau virtuel AKS en traduisant l’adresse IP privée en une adresse IP publique faisant partie de son pool sortant.
  • Fournissez l’accès aux applications via des services Kubernetes de type LoadBalancer, ce qui vous permet de mettre facilement à l’échelle vos applications et de créer des services hautement disponibles.

Cet article traite de l’intégration à un équilibreur de charge public sur AKS. Pour l’intégration à un équilibreur de charge interne, consultez Utiliser un équilibreur de charge interne dans AKS.

Prerequisites

  • AKS prend en charge la référence SKU standard Azure Load Balancer, qui est utilisée par défaut lorsque vous créez un cluster AKS. La référence SKU Standard vous donne accès à des fonctionnalités telles qu’un pool principal plus grand, plusieurs pools de nœuds, Zones de disponibilité et est sécurisé par défaut. La référence SKU de base a été retirée le 30 septembre 2025 et AKS ne la prend plus en charge. Si vous avez un cluster AKS existant qui utilise le SKU Basic, consultez Passer de l’équilibreur de charge Basic sur AKS. Pour plus d’informations sur les références SKU Load Balancer, consultez Azure Load Balancer comparaison des références SKU.
  • Pour obtenir une liste complète des annotations prises en charge pour les services Kubernetes avec le type LoadBalancer, consultez Annotations LoadBalancer.
  • Cet article part du principe que vous disposez d’un cluster AKS avec la référence SKU Azure Load Balancer Standard. Si vous avez besoin d’un cluster AKS, vous pouvez en créer un à l’aide d’Azure CLI, d’Azure PowerShell ou du portail Azure.
  • Vous avez besoin d’installer kubectl et de configurer pour vous connecter à votre cluster AKS. Pour installer kubectl, téléchargez vos informations d’identification de cluster et vérifiez la connexion, consultez Se connecter au cluster.

Important

Si vous préférez utiliser votre propre passerelle, pare-feu ou proxy pour fournir une connexion sortante, vous pouvez ignorer la création du pool sortant de l’équilibreur de charge et de l’adresse IP frontale respective en utilisant un type de sortie UserDefinedRouting (UDR). Le type de sortie définit la méthode de sortie d’un cluster et correspond par défaut au typeLoadBalancer.

Limitations

Les limitations suivantes s’appliquent lorsque vous créez et gérez des clusters AKS prenant un charge un équilibreur de charge avec la référence SKU Standard :

  • AKS gère le cycle de vie et les opérations des nœuds de l’agent. La modification des ressources IaaS associées aux nœuds de l’agent n’est pas prise en charge. Un exemple d’opération non prise en charge est d’apporter des modifications manuelles au groupe de ressources de l’équilibreur de charge.

  • Au moins une adresse IP publique ou un préfixe IP sont requis pour autoriser le trafic sortant du cluster AKS. L’adresse IP publique et le préfixe IP sont nécessaires pour maintenir la connectivité entre le plan de contrôle et les nœuds d’agent ainsi que pour assurer la compatibilité avec les versions précédentes d’AKS. Vous disposez des options suivantes pour spécifier des adresses IP publiques ou des préfixes IP avec un équilibreur de charge SKU Standard :

    • Fournir vos propres adresses IP publiques.
    • Fournir vos propres préfixes IP publics.
    • Spécifier un nombre de 1 à 100 pour autoriser le cluster AKS à créer ce nombre d’adresses IP publiques à référence SKU Standard dans le même groupe de ressources que le cluster AKS. Ce groupe de ressources est généralement nommé avec MC_ au début. AKS attribue l’adresse IP publique pour l’équilibreur de charge de référence SKU Standard. Par défaut, une adresse IP publique est automatiquement créée dans le même groupe de ressources que le cluster AKS si aucune adresse IP publique, aucun préfixe IP public ou aucun nombre d’adresses IP ne sont spécifiés. Vous devez également autoriser des adresses publiques et éviter de créer des stratégies Azure interdisant la création d’adresses IP.
  • Une adresse IP publique créée par AKS ne peut pas être réutilisée en tant qu’adresse IP publique (BYO) personnalisée. Vous devez créer et gérer toutes les adresses IP personnalisées.

  • Vous ne pouvez pas modifier la référence SKU de l’équilibreur de charge en modifiant directement la ressource d’équilibreur de charge gérée par AKS. Pour migrer un cluster AKS existant de la référence SKU de base retirée vers la référence SKU Standard , utilisez le processus de mise à niveau AKS pris en charge. La migration provoque un temps d’arrêt et ne peut pas être restaurée une fois qu’elle a commencé.

  • Les Load Balancers à référence SKU Standard prennent uniquement en charge les adresses IP à référence SKU Standard.

  • Le service Private Link n’est pas pris en charge lorsque le type de pool principal de l’équilibreur de charge est défini nodeIPsur .

Créer un service d’équilibreur de charge dans AKS

Une fois que vous avez créé un cluster AKS avec le type de sortie LoadBalancer (par défaut), votre cluster est prêt à utiliser l’équilibreur de charge pour exposer les services.

  1. Vérifiez que votre cluster a au moins un pod en cours d’exécution et prêt avec l’étiquette app: public-app . Le manifeste de service à l’étape suivante sélectionne les pods avec cette étiquette, mais ne crée pas de déploiement.

    kubectl get pods -l app=public-app
    
  2. Créez un manifeste de service nommé public-svc.yaml, qui crée un service public de type LoadBalancer.

    apiVersion: v1
    kind: Service
    metadata:
      name: public-svc
    spec:
      type: LoadBalancer
      ports:
      - port: 80
      selector:
        app: public-app
    

Spécifier l’adresse IP de l’équilibreur de charge

Si vous souhaitez utiliser une adresse IP spécifique avec l’équilibreur de charge, vous avez deux options pour spécifier l’adresse IP :

  • Définir des annotations de service (recommandé) : permet service.beta.kubernetes.io/azure-pip-name de spécifier une ressource IP publique existante par nom. Cette annotation est la solution la plus efficace et vous aide à éviter un éventuel ralentissement. Vous pouvez également utiliser service.beta.kubernetes.io/azure-load-balancer-ipv4 pour une adresse IPv4 et service.beta.kubernetes.io/azure-load-balancer-ipv6 pour une adresse IPv6. Pour connaître les besoins en matière d’adresse IP publique, de groupe de ressources et d’identité, consultez Utiliser une adresse IP publique statique avec l’équilibreur de charge AKS.
  • Ajoutez la propriété LoadBalancerIP au manifeste YAML de l’équilibreur de charge : ajoutez la Service.Spec.LoadBalancerIP propriété au manifeste YAML de l’équilibreur de charge. Ce champ est déconseillé après Kubernetes en amont et ne prend pas en charge la double pile. L’utilisation actuelle reste la même et les services existants sont censés fonctionner sans modification.

Déployer le manifeste du service d’équilibreur de charge

  1. Déployez le manifeste de service public avec la commande kubectl apply et spécifiez le nom de votre manifeste YAML.

    kubectl apply -f public-svc.yaml
    

    Azure Load Balancer est configuré avec une nouvelle adresse IP publique placée au premier plan du nouveau service. Étant donné qu’Azure Load Balancer peut avoir plusieurs adresses IP frontales, chaque nouveau service que vous déployez obtient une nouvelle adresse IP frontale dédiée et accessible de manière unique.

  2. Vérifiez que votre service est créé et que l’équilibreur de charge est configuré à l’aide de la kubectl get service commande.

    kubectl get service public-svc
    

    Lorsque vous affichez les détails du service, l’adresse IP publique créée pour ce service sur l’équilibreur de charge est affichée dans la colonne EXTERNAL-IP de la sortie. Le passage de l’adresse IP de l’état <en attente> à l’état d’adresse IP publique effective peut prendre une ou deux minutes. L’exemple de sortie suivant illustre la création réussie du service :

    NAMESPACE     NAME          TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)         AGE
    default       public-svc    LoadBalancer   10.0.39.110    203.0.113.187   80:32068/TCP    52s
    
  3. Obtenez des informations plus détaillées sur votre service à l’aide de la kubectl describe service commande.

    kubectl describe service public-svc
    

    L’exemple de sortie suivant est une version condensée de la sortie après l’exécution de kubectl describe service. Entrée de l’équilibreur de charge affiche l’adresse IP externe exposée par votre service. Adresse IP affiche les adresses internes.

    Name:                        public-svc
    Namespace:                   default
    Labels:                      <none>
    Annotations:                 <none>
    Selector:                    app=public-app
    ...
    IP:                          10.0.39.110
    ...
    LoadBalancer Ingress:        203.0.113.187
    ...
    TargetPort:                  80/TCP
    NodePort:                    32068/TCP
    ...
    Session Affinity:            None
    External Traffic Policy:     Cluster
    ...
    

Étape suivante