Acheminez le trafic Internet avec le AWS Load Balancer Controller - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Acheminez le trafic Internet avec le AWS Load Balancer Controller

Le AWS Load Balancer Controller gère les AWS Elastic Load Balancers pour un cluster Kubernetes. Vous pouvez utiliser le contrôleur pour exposer les applications de votre cluster à Internet. Le contrôleur fournit des équilibreurs de AWS charge qui pointent vers les ressources de service ou d'entrée du cluster. En d’autres termes, le contrôleur crée une adresse IP ou un nom DNS unique qui achemine le trafic vers plusieurs pods dans votre cluster.

Diagramme d’architecture. Illustration du trafic provenant des utilisateurs Internet vers un équilibreur de charge Amazon Load Balancer. L’équilibreur de charge Amazon Load Balancer distribue le trafic aux pods du cluster.

Le contrôleur surveille les ressources Service ou Ingress Kubernetes. En réponse, il crée les ressources AWS Elastic Load Balancing appropriées. Vous pouvez configurer le comportement spécifique des équilibreurs de charge en ajoutant des annotations aux ressources Kubernetes. Par exemple, vous pouvez associer des groupes AWS de sécurité aux équilibreurs de charge à l'aide d'annotations.

Le contrôleur fournit les ressources suivantes :

Kubernetes Ingress

Le LBC crée un équilibreur de charge AWS Application Load Balancer (ALB) lorsque vous créez une ressource Ingress Kubernetes. Consultez la liste des annotations applicables à une ressource Ingress.

Service Kubernetes de type LoadBalancer

Le LBC crée un équilibreur de charge AWS Network Load Balancer (NLB) lorsque vous créez un service Kubernetes de type LoadBalancer. Consultez la liste des annotations applicables à une ressource Service.

Historiquement, l’équilibreur de charge Network Load Balancer Kubernetes était utilisé pour des cibles de type instance, tandis que le LBC était utilisé pour des cibles de type IP. Avec la version AWS Load Balancer Controller 2.3.0 ou une version ultérieure, vous pouvez créer en NLBs utilisant l'un ou l'autre type de cible. Pour plus d'informations sur les types de cibles NLB, consultez Type de cible dans le guide de l'utilisateur de Network Load Balancer.

Le contrôleur est un projet open source géré sur GitHub.

Avant de déployer le contrôleur, nous vous recommandons de consulter les prérequis et points à considérer dans Routage du trafic des applications et du trafic HTTP à l’aide des équilibreurs de charge d’applications Application Load Balancer et Acheminer le trafic TCP et UDP avec des Network Load Balancers. Dans ces rubriques, vous allez déployer un exemple d'application qui inclut un équilibreur de AWS charge.

API Kubernetes Gateway

Avec la version AWS Load Balancer Controller 2.14.0 ou ultérieure, le LBC crée un Application AWS Load Balancer (ALB) lorsque vous créez un Kubernetes. Gateway Kubernetes Gateway normalise davantage la configuration qu'Ingress, qui nécessitait des annotations personnalisées pour de nombreuses options courantes. Passez en revue la configuration que vous pouvez appliquer à une ressource de passerelle. Pour plus d'informations sur l'GatewayAPI, consultez la section API Gateway dans la documentation de Kubernetes.

Installation du contrôleur

Vous pouvez utiliser l'une des procédures suivantes pour installer le AWS Load Balancer Controller :

  • Si vous utilisez Amazon EKS pour la première fois, nous vous recommandons d'utiliser Helm pour l'installation, car cela simplifie l'installation du AWS Load Balancer Controller. Pour de plus amples informations, veuillez consulter Installez le contrôleur AWS Load Balancer avec Helm.

  • Pour les configurations avancées, telles que les clusters avec un accès réseau restreint aux registres de conteneurs publics, utilisez les manifestes Kubernetes. Pour de plus amples informations, veuillez consulter Installer le AWS Load Balancer Controller avec des manifestes.

Migration à partir des versions obsolètes du contrôleur

  • Si vous avez installé des versions obsolètes du AWS Load Balancer Controller, consultez. Migrer des applications depuis le ALB Ingress Controller

  • Les versions rendues obsolètes ne peuvent pas être mises à niveau. Ils doivent être supprimés et une version actuelle du AWS Load Balancer Controller doit être installée.

  • Les versions obsolètes incluent :

    • AWS Contrôleur d'entrée ALB pour Kubernetes (« Ingress Controller »), prédécesseur du Load Balancer Controller. AWS

    • N'importe quelle 0.1.x version du AWS Load Balancer Controller

Ancien fournisseur de cloud

Kubernetes inclut un ancien fournisseur de cloud pour AWS. L'ancien fournisseur de cloud est capable de fournir des équilibreurs de AWS charge, comme le AWS Load Balancer Controller. L’ancien fournisseur de cloud crée des équilibreurs de charge Classic Load Balancer. Si vous n'installez pas le AWS Load Balancer Controller, Kubernetes utilisera par défaut l'ancien fournisseur de cloud. Vous devez installer le AWS Load Balancer Controller et éviter d'utiliser l'ancien fournisseur de cloud.

Important

Dans les versions 2.5 et ultérieures, le AWS Load Balancer Controller devient le contrôleur par défaut pour les ressources de service Kubernetes avec le Network Load Balancer (NLB) type: LoadBalancer et crée un AWS Network Load Balancer (NLB) pour chaque service. Pour ce faire, il génère un webhook de mutation pour les services, qui définit le champ spec.loadBalancerClass sur service.k8s.aws/nlb pour les nouveaux services d'équilibreur type: LoadBalancer. Vous pouvez désactiver cette fonctionnalité et revenir à l'utilisation de l'ancien fournisseur de cloud en tant que contrôleur par défaut, en définissant la valeur enableServiceMutatorWebhook des charts de Helm sur false. À moins que vous ne désactiviez cette fonctionnalité, le cluster ne générera pas de nouveaux équilibreurs de charge Classic Load Balancer pour vos services. Les équilibreurs de charge Classic Load Balancer existants continueront de fonctionner.