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

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 équilibreurs de charge AWS élastiques pour un Kubernetes grappe. 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 DNS nom unique qui pointe vers plusieurs pods de votre cluster.

Schéma d'architecture. Illustration du trafic provenant des internautes vers Amazon Load Balancer. Amazon Load Balancer distribue le trafic aux pods du cluster.

Le contrôleur surveille Kubernetes Ingress or Service ressources. 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 appliquant des annotations au Kubernetes ressources. 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

LBCcrée un AWS Application Load Balancer (ALB) lorsque vous créez un Kubernetes Ingress. Passez en revue les annotations que vous pouvez appliquer à une ressource Ingress.

Kubernetes service du LoadBalancer type

LBCcrée un AWS Network Load Balancer (NLB) lorsque vous créez un Kubernetes type de serviceLoadBalancer. Passez en revue les annotations que vous pouvez appliquer à une ressource de service.

Dans le passé, le Kubernetes un équilibreur de charge réseau a été utilisé pour les cibles d'instance, mais il LBC a été utilisé pour les cibles IP. Avec le plugin AWS Load Balancer Controller version 2.3.0 ou ultérieure, vous pouvez créer NLBs en utilisant l'un ou l'autre type de cible. Pour plus d'informations sur les types de NLB cibles, voir Type de cible dans le Guide de l'utilisateur pour les équilibreurs de charge réseau.

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 conditions préalables et les considérations figurant dans Router l'application et le HTTP trafic avec les équilibreurs de charge d'application et. Route TCP et UDP trafic avec les équilibreurs de charge réseau Dans ces rubriques, vous allez déployer un exemple d'application qui inclut un équilibreur de AWS charge.

Installez le contrôleur

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

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

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

Migrer depuis des versions de contrôleur obsolètes

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

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

  • Les versions obsolètes incluent :

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

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

Fournisseur de cloud traditionnel

Kubernetes inclut un ancien fournisseur de cloud pour AWS. L'ancien fournisseur de cloud est capable de fournir des équilibreurs de AWS charge, similaires au AWS Load Balancer Controller. L'ancien fournisseur de cloud crée des équilibreurs de charge classiques. 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 évitez de faire appel à 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 Kubernetes ressources de service avec le 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. Le cluster ne fournira pas de nouveaux équilibreurs de charge classiques pour vos services à moins que vous ne désactiviez cette fonctionnalité. Les équilibreurs de charge Classic Load Balancer existants continueront de fonctionner.