Application Load Balancer (ALB) Ingress Controller manages and routes external traffic to services within a Kubernetes cluster. When you use an ALB Ingress to expose a service, ALB Ingress Controller monitors changes to the associated Endpoint resources. It continuously synchronizes the status of backend nodes to the corresponding backend server group and applies these changes to the ALB instance. This topic describes how to diagnose and resolve common issues and events that you may encounter while using the ALB Ingress.
How it works
When you access a service through an ALB Ingress, ALB Ingress Controller monitors changes to various resources and synchronizes the changes to the associated ALB instance. The synchronization may fail because of limitations or configuration errors. The following figure shows the logical relationships between different resources and the synchronization process.
Step 1: View anomalous events
Using the console: In the left navigation pane, choose . Select the target namespace, click the name of the target Ingress, then click the Events tab.
Using kubectl:
kubectl describe ingress <ingress-name> -n <namespace>Expected output:
... 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
In the Description column or the Message field, you can find event information for the Ingress.
Scheduled for sync: The event has started.Successfully reconciled: The reconciliation is complete and the event ended successfully.For
Warningmessages, see Step 2 for troubleshooting.If changes do not take effect and no anomalous events are reported, see What do I do if changes to an ALB Ingress do not take effect but no anomalous events are reported?
Step 2: Analyze and resolve anomalous events
The following table describes common anomalous events, their causes, and solutions.
To prevent issues caused by incompatibilities between older versions of the ALB Ingress Controller and new features, we recommend upgrading the controller to the latest version before you begin troubleshooting.
Message | Cause | Solution |
listener does not exist in alb, port: 80, protocol: HTTP | In ALB Ingress Controller V2.11.0 and later, listeners for an Ingress are only associated, not automatically created. This error occurs if you use a listener in an Ingress without creating a corresponding listener in the | If you are using ALB Ingress Controller V2.11.0 or later, create the required listener for the Ingress resource in the AlbConfig. |
listener not found for (80/HTTP), with ingresses 1 | In ALB Ingress Controller V2.11.0 and later, this error occurs if you remove a listener from an | To remove a listener, you must first remove all Ingresses associated with it. Important If you removed a listener by mistake, add it back. |
no certificate found for host | TLS is enabled and certificate auto-discovery is active, but no matching certificate for this domain could be found in Certificate Management Service. |
|
The param Rules.1.RuleConditions.2.PathConfig.Values.1 is illegal | The forwarding rule contains an invalid path parameter. |
|
The param ServerGroupName is illegal | The name of the ALB backend server group is in an invalid format. | Make sure the server group is named in the correct format. The server group name is generated in the |
The specified resource sgp-vz2fb219vv792flx3u is in use | The ACK-managed ALB backend server group is referenced by another ALB instance. | Log on to the ALB console. In the left navigation pane, choose . On the Server Groups page, find the target backend server group and dissociate the ALB instance as needed. |
Message: Invalid parameter. Check the parameter input. | This error often occurs when the certificate ID is incorrectly configured when specifying a certificate in an | Verify that the certificate ID is a resource ID, not a numeric ID. You must use the certificate ID specified by CertIdentifier. |
Message: Failed to create SSL Certificate with name default-https-secret-1-b585e6 ({namespace}-{name}-{identity}). Error: The certificate has expired. | The Secret certificate has expired. The certificate name in the error message consists of three parts:
|
For more information, see Configure certificates for encrypted communication over HTTPS. |
failed to createSSLCertificateWithName: XXX ErrorCode: NameRepeat Message: The name is already used. Please enter another name. | The Ingress uses a Secret certificate. After the certificate expires, if you upload a new certificate using an | |
invalid server group Cookie: |
| When you use the rewrite cookie method, you must configure a cookie value: For parameter details, see Use annotations to implement session persistence. |
| ||
The quota of alb_quota_server_added_num is exceeded for resource eni-xxxx, usage 202/200 | The | Go to Quota Center to increase the server group quota. |
FAQ
What do I do if changes to an ALB Ingress do not take effect but no anomalous events are reported?
If reconciliation events related to the AlbConfig are not executed or change events are not processed successfully, the issue may be caused by an incorrect binding between the IngressClass and the AlbConfig. For more information, see Use an IngressClass to associate an AlbConfig with an Ingress. Verify that the spec.parameters parameter specified in the IngressClass is associated with the correct AlbConfig resource object name.