ALB Ingress Controller est un contrôleur d'entrée pour les clusters Kubernetes qui achemine le trafic externe vers les services internes. Lorsque vous utilisez une entrée ALB Ingress pour accéder à un service, ALB Ingress Controller surveille les modifications apportées aux ressources de point de terminaison associées au service. Le contrôleur synchronise ensuite l'état des nœuds backend avec le groupe de serveurs backend correspondant et applique ces modifications à l'instance Application Load Balancer (ALB). Cette rubrique explique comment diagnostiquer et résoudre les événements anormaux susceptibles de survenir lors de l'utilisation d'une entrée ALB Ingress.
Fonctionnement
Lorsque vous accédez à un service via une entrée ALB Ingress, ALB Ingress Controller surveille les modifications apportées à diverses ressources et synchronise ces changements avec l'instance ALB associée. Ce processus peut échouer en raison de différentes limites ou d'erreurs de configuration. La figure suivante illustre les relations logiques entre les différentes ressources et le processus de synchronisation.
Étape 1 : Vérifier la présence d'événements anormaux
Utilisez la console : dans le volet de navigation de gauche, sélectionnez . Sélectionnez le namespace cible, cliquez sur le nom de l'entrée cible pour ouvrir sa page de détails, puis cliquez sur l'onglet Events.
-
Utilisez kubectl :
kubectl describe ingress <ingress-name> -n <namespace>Sortie attendue :
... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedBuildModel 2m28s (x10 over 6m43s) ingress listener is not exist in alb, port: 443, protocol: HTTPS Normal Sync 19s (x32 over 11d) ingress Scheduled for sync Normal SuccessfullyReconciled 4s (x20 over 11d) ingress Successfully reconciled
Vérifiez les informations relatives aux événements de l'entrée dans la colonne Description ou dans le champ Message.
Scheduled for sync: indique que l'événement a démarré.Successfully reconciled: indique que la réconciliation est terminée.-
Pour les messages
Warning, consultez l'étape 2 pour résoudre le problème.Si aucun événement anormal n'est signalé mais que vos modifications ne sont pas prises en compte, consultez Que faire si les modifications apportées à une entrée ALB Ingress ne sont pas prises en compte alors qu'aucun événement anormal n'est signalé ?
Étape 2 : Analyser et résoudre les événements anormaux
Le tableau suivant décrit les événements anormaux courants, leurs causes et les solutions associées.
Pour éviter les événements anormaux causés par une ancienne version du composant ALB Ingress Controller incompatible avec les nouvelles fonctionnalités, reportez-vous aux Notes de version et mettez à niveau le composant vers la version cible avant d'effectuer un diagnostic.
Message | Cause | Solution |
listener is not exist in alb, port: 80, protocol: HTTP | Dans les versions v2.11.0 et ultérieures d'ALB Ingress Controller, les écouteurs d'une entrée sont uniquement associés et non créés automatiquement. Cette erreur se produit si vous utilisez un écouteur dans une entrée sans l'avoir préalablement créé dans l'AlbConfig correspondant. | Pour ALB Ingress Controller v2.11.0 ou version ultérieure, créez l'écouteur requis pour la ressource d'entrée dans l'AlbConfig. Pour plus d'informations, consultez Configurer un écouteur ALB à l'aide d'un AlbConfig. |
listener is not exist in alb, port: 443, protocol: HTTPS | ||
listener not found for (80/HTTP), with ingresses 1 | Dans les versions v2.11.0 et ultérieures d'ALB Ingress Controller, cette erreur se produit si vous supprimez un écouteur d'un AlbConfig toujours associé à une entrée. Le message d'erreur indique l'écouteur manquant et le nombre d'entrées associées. | Pour supprimer un écouteur, retirez d'abord toutes les entrées qui lui sont associées. Important Si vous avez supprimé un écouteur par erreur, rajoutez-le. |
none certificate found for host | TLS est activé et la découverte automatique des certificats est active pour un domaine, mais aucun certificat correspondant à ce domaine n'existe dans Certificate Management Service. |
|
Secret "XXX" not found | L'entrée fait référence à un Secret de certificat TLS qui n'existe pas dans le namespace spécifié. Cela affecte principalement la configuration HTTPS. Si le Secret référencé est manquant, ALB Ingress Controller ne peut pas terminer la configuration du certificat, et la mise à jour de la configuration AlbConfig peut être bloquée jusqu'à ce que le problème soit résolu. | Assurez-vous que le Secret de certificat existe dans le même namespace que l'entrée et que son nom correspond exactement à la valeur spécifiée dans le champ |
The param of Rules.1.RuleConditions.2.PathConfig.Values.1 is illegal | La règle de routage contient un paramètre de chemin invalide. |
|
The param of ServerGroupName is illegal | Le format du nom du groupe de serveurs backend ALB est invalide. | Assurez-vous que le nom du groupe de serveurs utilise le format correct. Le contrôleur génère le nom du groupe de serveurs au format |
The specified resource sgp-vz2fb219vv792flx3u is in use | Le groupe de serveurs backend ALB géré par ACK est référencé par une autre instance ALB. | Connectez-vous à la console Application Load Balancer. Dans le volet de navigation de gauche, sélectionnez . Sur la page Server Group, recherchez le groupe de serveurs backend cible et dissociez l'instance ALB si nécessaire. |
Message: Invalid parameter. Check the parameter input. | Cette erreur se produit souvent si vous configurez incorrectement l'ID du certificat lors de la spécification d'un certificat dans un AlbConfig. | Vérifiez si un ID de ressource ou un ID numérique est utilisé comme ID de certificat. Vous devez utiliser l'ID de certificat spécifié par CertIdentifier. |
Message: Failed to create SSL Certificate with name default-https-secret-1-b585e6 ({namespace}-{name}-{identity}). Error: The certificate has expired . | Le certificat secret utilisé par l'entrée a expiré. Le nom du certificat dans le message d'erreur se compose de trois parties :
|
Pour plus d'informations sur la configuration, consultez Configurer un certificat HTTPS pour une communication chiffrée. |
failed to createSSLCertificateWithName: XXX ErrorCode: NameRepeat Message: The name is already used. Please enter another name. | Le certificat secret utilisé par l'entrée a expiré. La réutilisation du nom du certificat expiré lors du téléchargement d'un nouveau certificat provoque un conflit de nom de certificat SSL. | |
invalid server group Cookie: |
| Lorsque vous utilisez la méthode de réécriture de cookie, vous devez configurer une valeur de cookie. Pour plus d'informations sur les paramètres, consultez Implémenter la persistance de session à l'aide d'annotations. |
| ||
The quota of alb_quota_server_added_num is exceeded for resource eni-xxxx, usage 202/200 | Le quota | Augmentez le quota de groupe de serveurs dans le Quota Center. |
FAQ
Les modifications apportées à ALB Ingress ne sont pas prises en compte
Si le contrôleur ne déclenche pas d'événements de réconciliation pour l'AlbConfig ou ne parvient pas à traiter les événements de modification, la cause peut être une liaison incorrecte entre l'IngressClass et l'AlbConfig. Pour plus d'informations, consultez Utiliser une IngressClass pour associer un AlbConfig à une entrée et vérifiez que le paramètre spec.parameters dans l'IngressClass pointe vers le nom correct de l'objet de ressource AlbConfig.
Pourquoi le point de terminaison externe (Endpoint) d'une entrée ALB Ingress est-il vide ou l'adresse ne peut-elle pas être obtenue, et comment résoudre ce problème ?
Si le point de terminaison externe d'une entrée ALB Ingress est vide ou si l'adresse ne peut pas être obtenue, vérifiez les causes courantes suivantes et prenez les mesures appropriées :
IngressClass non spécifiée : assurez-vous que la ressource d'entrée spécifie la bonne
ingressClassName(par exemple,alb). SiingressClassNamen'est pas définie ou si la valeur ne correspond pas à l'IngressClass gérée par ALB Ingress Controller, le contrôleur ne traitera pas l'entrée et le point de terminaison restera vide.Association AlbConfig incorrecte : vérifiez si l'IngressClass est associée au bon nom AlbConfig et assurez-vous que l'état de l'AlbConfig est normal. Une association incorrecte ou un AlbConfig dans un état anormal empêche le provisionnement d'ALB. Pour plus d'informations, consultez Utiliser une IngressClass pour associer un AlbConfig à une entrée.
Adresses IP vSwitch insuffisantes : vérifiez le nombre d'adresses IP disponibles dans les vSwitch associés à l'AlbConfig. Pour garantir le support complet des fonctionnalités élastiques d'ALB, réservez au moins 8 adresses IP dans chaque vSwitch où l'instance ALB est déployée. Si les adresses IP disponibles sont insuffisantes, remplacez le vSwitch ou étendez la plage CIDR du vSwitch.
Zones de disponibilité insuffisantes : ALB requiert une haute disponibilité et nécessite des vSwitch dans au moins deux zones de disponibilité différentes. Si une seule zone de disponibilité est configurée, ajoutez des vSwitch dans au moins une autre zone de disponibilité.
Option d'installation du composant : si None a été sélectionné lors de l'installation du composant, aucune instance ALB ni AlbConfig n'a été créé automatiquement. Vous devez créer manuellement AlbConfig et IngressClass et associer un AlbConfig à une Ingress à l'aide d'IngressClass.