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.
Créez un IngressClass pour configurer un Application Load Balancer
Le mode automatique d'EKS automatise les tâches de routine pour l'équilibrage de charge, notamment l'exposition des applications du cluster à Internet.
AWS suggère d'utiliser des équilibreurs de charge d'application (ALB) pour gérer le trafic HTTP et HTTPS. Les équilibreurs de charge d'application peuvent acheminer les demandes en fonction de leur contenu. Pour plus d'informations sur les équilibreurs de charge des applications, consultez Qu'est-ce qu'Elastic Load Balancing ?
Le mode automatique EKS crée et configure les équilibreurs de charge d'application ()ALBs. Par exemple, le mode automatique EKS crée un équilibreur de charge lorsque vous créez un objet Ingress
Kubernetes et le configure pour acheminer le trafic vers la charge de travail de votre cluster.
Présentation
-
Créez une
IngressClassParams
ressource en spécifiant AWS des valeurs de configuration spécifiques telles que le certificat à utiliser pour les sous-réseaux SSL/TLS et VPC. -
Créez une
IngressClass
ressource en spécifiant que le mode automatique EKS sera le contrôleur de la ressource. -
Créez une
Ingress
ressource qui associe un chemin et un port HTTP à une charge de travail de cluster. -
Le mode automatique EKS créera un Application Load Balancer qui pointe vers la charge de travail spécifiée dans la
Ingress
ressource, en utilisant la configuration de l'équilibreur de charge spécifiée dans la ressource.IngressClassParams
Prérequis
-
Mode automatique EKS activé sur un cluster Amazon EKS
-
Kubectl configuré pour se connecter à votre cluster
-
Vous pouvez l'utiliser
kubectl apply -f <filename>
pour appliquer les exemples de fichiers YAML de configuration ci-dessous à votre cluster.
-
Note
Le mode automatique d'EKS nécessite des balises de sous-réseau pour identifier les sous-réseaux publics et privés.
Si vous avez créé votre cluster aveceksctl
, vous possédez déjà ces balises.
Découvrez comment Sous-réseaux de balises pour le mode automatique EKS.
Étape 1 : créer IngressClassParams
Créez un IngressClassParams
objet pour spécifier AWS des options de configuration spécifiques pour l'Application Load Balancer. Utilisez la référence ci-dessous pour mettre à jour l'exemple de fichier YAML.
Notez le nom que vous avez défini pour la IngressClassParams
ressource, vous en aurez besoin à l'étape suivante.
apiVersion: eks.amazonaws.com/v1 kind: IngressClassParams metadata: name: alb spec: scheme: internet-facing
Étape 2 : créer IngressClass
Créez un IngressClass
qui fait référence aux valeurs de configuration AWS spécifiques définies dans la IngressClassParams
ressource. Notez le nom duIngressClass
. Dans cet exemple, les IngressClass
et IngressClassParams
sont tous deux nommésalb
.
Utilisez l'is-default-class
annotation pour contrôler si Ingress
les ressources doivent utiliser cette classe par défaut.
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb annotations: # Use this annotation to set an IngressClass as Default # If an Ingress doesn't specify a class, it will use the Default ingressclass.kubernetes.io/is-default-class: "true" spec: # Configures the IngressClass to use EKS Auto Mode controller: eks.amazonaws.com/alb parameters: apiGroup: eks.amazonaws.com kind: IngressClassParams # Use the name of the IngressClassParams set in the previous step name: alb
Pour plus d'informations sur les options de configuration, consultezIngressClassParams Référence.
Étape 3 : créer une entrée
Créez une Ingress
ressource. Le but de cette ressource est d'associer les chemins et les ports de l'Application Load Balancer aux charges de travail de votre cluster.
Pour plus d'informations sur la configuration de cette ressource, consultez Ingress
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: 2048-ingress spec: # this matches the name of IngressClass. # this can be omitted if you have a default ingressClass in cluster: the one with ingressclass.kubernetes.io/is-default-class: "true" annotation ingressClassName: alb rules: - http: paths: - path: /* pathType: ImplementationSpecific backend: service: name: <your-service> port: number: 80
Étape 4 : Vérifier le statut
kubectl
À utiliser pour connaître le statut duIngress
. La disponibilité de l'équilibreur de charge peut prendre quelques minutes.
Utilisez le nom de la Ingress
ressource que vous avez définie à l'étape précédente.
kubectl get ingress <ingress-name>
Une fois que la ressource est prête, récupérez le nom de domaine de l'équilibreur de charge.
kubectl get ingress api-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Pour afficher le service dans un navigateur Web, passez en revue le port et le chemin spécifiés dans le Ingress
sauvetage.
Étape 5 : nettoyage
Pour nettoyer l'équilibreur de charge, utilisez la commande suivante :
kubectl delete ingress <ingress-name>
Le mode automatique EKS supprimera automatiquement l'équilibreur de charge associé dans votre AWS compte.
IngressClassParams Référence
Le tableau ci-dessous est une référence rapide pour les options de configuration couramment utilisées.
Champ | Description | Exemple de valeur |
---|---|---|
|
Définit si l'ALB est interne ou connecté à Internet |
|
|
Limite les espaces de noms qui peuvent l'utiliser IngressClass |
|
|
Regroupe plusieurs entrées pour partager un seul ALB |
|
|
Définit le type d'adresse IP pour l'ALB |
|
|
Liste des sous-réseaux pour le déploiement IDs d'ALB |
|
|
Filtres de balises pour sélectionner des sous-réseaux pour ALB |
|
|
ARNs de certificats SSL à utiliser |
|
|
Tags personnalisés pour les AWS ressources |
|
|
Attributs spécifiques à l'équilibreur de charge |
|
Considérations
-
Vous ne pouvez pas utiliser les annotations sur et IngressClass pour configurer les équilibreurs de charge avec le mode automatique EKS.
-
Vous devez mettre à jour le rôle IAM du cluster pour permettre la propagation des balises depuis Kubernetes vers les ressources Load AWS Balancer. Pour de plus amples informations, veuillez consulter AWS Balises personnalisées pour les ressources EKS Auto.
-
Pour plus d'informations sur l'association de ressources au mode automatique EKS ou au AWS Load Balancer Controller autogéré, consultez. Référence de migration
-
Pour plus d'informations sur la résolution des problèmes liés aux équilibreurs de charge, consultezRésoudre les problèmes liés au mode automatique d'EKS.
-
Pour plus d'informations sur l'utilisation de la fonctionnalité d'équilibrage de charge du mode automatique EKS, voirEquilibrage de charge.
Les tableaux suivants fournissent une comparaison détaillée des modifications IngressClassParams, des annotations d'entrée et des TargetGroupBinding configurations pour le mode automatique EKS. Ces tableaux mettent en évidence les principales différences entre la capacité d'équilibrage de charge du mode automatique d'EKS et le contrôleur d'équilibrage de charge open source, notamment les modifications de version de l'API, les fonctionnalités obsolètes et les noms de paramètres mis à jour.
IngressClassParams
Précédent | New | Description |
---|---|---|
|
|
Modification de la version de l'API |
|
|
Support pour plusieurs certificats ARNs |
|
|
Schéma de correspondance des sous-réseaux modifié |
|
|
Dénomination simplifiée des attributs |
Annotations d'entrée
Précédent | New | Description |
---|---|---|
|
Non pris en charge |
Utilisation |
|
Non pris en charge |
Spécifier les groupes dans IngressClass uniquement |
|
Non pris en charge |
Utilisez WAF v2 à la place |
|
Non pris en charge |
Utilisez WAF v2 à la place |
|
Non pris en charge |
Intégration Shield désactivée |
TargetGroupBinding
Précédent | New | Description |
---|---|---|
|
|
Modification de la version de l'API |
|
|
Spécification explicite du type de cible |
|
Non pris en charge |
Ne prend plus en charge le NLB sans groupes de sécurité |