Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Utilisation des annotations de service pour configurer les équilibreurs de charge Network Load Balancer
Découvrez comment configurer les équilibreurs de charge Network Load Balancer (NLB) dans Amazon EKS à l’aide des annotations du service Kubernetes. Cette rubrique explique les annotations prises en charge par le mode automatique EKS pour personnaliser le comportement des NLB, notamment l’accessibilité internet, les vérifications d’intégrité, la terminaison SSL/TLS et les modes de ciblage IP.
Lorsque vous créez une ressource Kubernetes de type LoadBalancer dans le mode automatique EKS, EKS provisionne et configure automatiquement un équilibreur de charge AWS Network Load Balancer en fonction des annotations que vous spécifiez. Cette approche déclarative vous permet de gérer les configurations des équilibreurs de charge directement via vos manifestes Kubernetes, conformément aux pratiques d’infrastructure en tant que code.
Le mode automatique EKS gère automatiquement le provisionnement de l’équilibreur de charge Network Load Balancer pour tous les services de type LoadBalancer. Aucune installation ou configuration supplémentaire de contrôleur n’est nécessaire. La spécification loadBalancerClass: eks.amazonaws.com/nlb est automatiquement définie comme valeur par défaut du cluster, simplifiant ainsi le déploiement et assurant la compatibilité avec les charges de travail Kubernetes existantes.
Note
Le mode automatique EKS nécessite l’ajout de balises sur les sous-réseaux afin d’identifier les sous-réseaux publics et privés.
Si vous avez créé votre cluster avec eksctl, ces balises sont déjà présentes.
Découvrez comment Baliser les sous-réseaux pour le mode automatique EKS.
Exemple de service
Pour plus d’informations sur la ressource Kubernetes Service, consultez la documentation Kubernetes
Consultez l’exemple de ressource Service ci-dessous :
apiVersion: v1 kind: Service metadata: name: echoserver annotations: # Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB) service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing spec: selector: app: echoserver ports: - port: 80 targetPort: 8080 protocol: TCP type: LoadBalancer # Specify the new load balancer class for NLB as part of EKS Auto Mode feature # For clusters with Auto Mode enabled, this field can be omitted as it's the default loadBalancerClass: eks.amazonaws.com/nlb
Annotations couramment utilisées
Le tableau ci-dessous présente les annotations couramment utilisées et prises en charge par le mode automatique EKS. Notez que le mode automatique EKS ne prend pas en charge toutes les annotations existantes.
Astuce
Toutes les annotations suivantes doivent être préfixées par service.beta.kubernetes.io/
| Champ | Description | Exemple |
|---|---|---|
|
|
Spécifie le type d’équilibreur de charge. Utilisez |
|
|
|
Spécifie s’il faut acheminer le trafic vers les instances de nœuds ou directement vers les adresses IP des pods. Utilisez |
|
|
|
Contrôle si l’équilibreur de charge est interne ou accessible depuis Internet. |
|
|
|
Protocole de surveillance de l’état pour le groupe cible. Les options courantes sont |
|
|
|
Le chemin HTTP utilisé pour la surveillance de l’état lorsque vous utilisez le protocole HTTP/HTTPS. |
|
|
|
Port utilisé pour la surveillance de l’état. Il peut s’agir d’un numéro de port spécifique ou du |
|
|
|
Spécifie les sous-réseaux dans lesquels créer l’équilibreur de charge. Vous pouvez utiliser des ID ou des noms de sous-réseaux. |
|
|
|
ARN du certificat SSL provenant d’AWS Certificate Manager pour HTTPS/TLS. |
|
|
|
Spécifie les ports devant utiliser SSL/TLS. |
|
|
|
Plages CIDR autorisées à accéder à l’équilibreur de charge. |
|
|
|
Balises AWS supplémentaires à appliquer à l’équilibreur de charge et aux ressources associées. |
|
|
|
Spécifie si l’équilibreur de charge utilise IPv4 ou la double pile (IPv4 + IPv6). |
|
Considérations
-
Vous devez mettre à jour le rôle IAM du cluster afin d’activer la propagation des balises de Kubernetes vers les ressources de l’équilibreur de charge AWS Load Balancer. Pour de plus amples informations, consultez Balises AWS personnalisées pour les ressources EKS Auto.
-
Pour plus d’informations sur l’association des ressources avec le mode automatique EKS ou avec le contrôleur d’équilibreur de charge AWS Load Balancer Controller, consultez Référence de migration.
-
Pour plus d’informations sur la résolution des problèmes liés aux équilibreurs de charge, consultez Résolution des problèmes avec le mode automatique EKS.
-
Pour des considérations supplémentaires concernant l’utilisation de la fonctionnalité d’équilibrage de charge du mode automatique EKS, consultez Equilibrage de charge.
Lors de la migration vers le mode automatique EKS pour l’équilibrage de charge, plusieurs modifications concernant les annotations de service et la configuration des ressources sont nécessaires. Les tableaux suivants présentent les principales différences entre l’ancienne et la nouvelle mise en œuvre, incluant les options non prises en charge et les alternatives recommandées.
Annotations de service
| Précédent | New | Description |
|---|---|---|
|
|
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
|
Divers attributs de l’équilibreur de charge |
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
|
|
Non pris en charge |
Utiliser |
Pour migrer à partir des annotations d’attributs d’équilibreur de charge désormais obsolètes, regroupez ces paramètres dans l’annotation service.beta.kubernetes.io/aws-load-balancer-attributes. Cette annotation accepte une liste de paires clé-valeur séparées par des virgules afin de définir plusieurs attributs de l’équilibreur de charge. Par exemple, pour spécifier le protocole proxy, la journalisation des accès et l’équilibrage de charge entre zones, utilisez le format suivant :
service.beta.kubernetes.io/aws-load-balancer-attributes: access_logs.s3.enabled=true,access_logs.s3.bucket=my-bucket,access_logs.s3.prefix=my-prefix,load_balancing.cross_zone.enabled=true
Ce format consolidé offre une méthode plus cohérente et flexible pour configurer les attributs de l’équilibreur de charge, tout en réduisant le nombre d’annotations nécessaires. Passez en revue vos configurations de service existantes et mettez-les à jour pour utiliser ce format consolidé.
TargetGroupBinding
| Précédent | New | Description |
|---|---|---|
|
|
|
Modifications de version d’API |
|
|
|
Spécifications explicite du type de cible |
|
|
Non pris en charge |
Ne prend plus en charge NLB sans groupes de sécurité |