-
Notifications
You must be signed in to change notification settings - Fork 260
feat(lb): add troubleshooting #4591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from 5 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
a646098
feat(lb): continue troubleshooting
RoRoJ e7d8d52
feat(lb): add more troubleshooting
RoRoJ fa74146
fix(lb): add troubleshooting
RoRoJ f69e79a
Update pages/load-balancer/troubleshooting/k8s-errors.mdx
RoRoJ 87037fb
Apply suggestions from code review
RoRoJ 8084acd
Update pages/load-balancer/troubleshooting/configuration.mdx
RoRoJ e09fee8
Apply suggestions from code review
RoRoJ 2cff2e9
fix(lb): add index and links
RoRoJ File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| --- | ||
| meta: | ||
| title: I am having problems with my Load Balancer's certificate | ||
| description: Troubleshoot errors that you may experience when creating an SSL/TLS certificate, adding it to your Load Balancer frontend, or successfully handling HTTPS connections. | ||
| content: | ||
| h1: I am having problems with my Load Balancer's certificate | ||
| paragraph: Troubleshoot errors that you may experience when creating an SSL/TLS certificate, adding it to your Load Balancer frontend, or successfully handling HTTPS connections. | ||
| tags: load-balancer certificate ssl tls dns | ||
| dates: | ||
| validation: 2025-03-10 | ||
| posted: 2025-03-10 | ||
| categories: | ||
| - network | ||
| --- | ||
|
|
||
| ## I'm experiencing DNS errors when adding an SSL/TLS certificate | ||
|
|
||
| You may be trying to [create or upload](/load-balancer/how-to/add-certificate/) a certificate for your Load Balancer, and receive the following error message: | ||
|
|
||
| ``` | ||
| invalid argument(s): dns_name does not respect constraint, <domain> does not resolve to your Load Balancer IP | ||
| ``` | ||
|
|
||
| ### Cause | ||
|
|
||
| The domain name specified does not resolve to the Load Balancer's public IP address. | ||
|
|
||
| ### Solution | ||
|
|
||
| Try the following steps: | ||
|
|
||
| - Ensure that a DNS record exists, pointing this domain to the Load Balancer's public IP address. | ||
| - Ensure that you have correctly typed the domain name, with no typos or errors. | ||
| - If you created the DNS record very recently, DNS propagation might not yet be complete. Wait for 30-60 minutes and try again, to see if the issue resolves itself. | ||
| - If you are trying to upload a custom certificate: | ||
| - Check the certificate's validity dates and ensure it's not expired or not yet valid. | ||
| - If the certificate has wildcards, ensure it covers the correct domain and subdomains. For example, if your certificate covers `*.example.com`, you can use it to secure `subdomain.example.com` but not `sub.subdomain.example.com`. Check the [IETF documentation](https://www.ietf.org/rfc/rfc2818.txt). | ||
| - If the error persists, check the DNS entry using a tool like `dig`, to ensure it is resolving correctly. | ||
|
|
||
|
|
||
| ## I am experiencing HTTP errors when generating a Let's Encrypt SSL/TLS certificate | ||
|
|
||
| You may be trying to [generate a Let's Encrypt certificate](/load-balancer/how-to/add-certificate/#how-to-generate-and-add-a-lets-encrypt-certificate) for your Load Balancer, and receive the following error message: | ||
|
|
||
| ``` | ||
| HTTP error 400: The port 80 frontend must be associated to an HTTP backend | ||
| ``` | ||
|
|
||
| ### Cause | ||
|
|
||
| Let's Encrypt certificates cannot be created for Load Balancers which have a frontend listening on port 80, but are attached to a **TCP** backend. This is because the Let's Encrypt challenge would fail. | ||
|
|
||
| ### Solution: | ||
|
|
||
| Ensure that your Load Balancer has either: | ||
| - An HTTP-protocol-backend attached to a frontend listening on port 80, or | ||
| - A TCP-protocol-backend attached to a frontend listening on a port other than 80 | ||
|
|
||
| Alternatively, create and import your own [custom certificate](/load-balancer/how-to/add-certificate/#how-to-import-a-certificate) for your Load Balancer, rather than generating a Let's Encrypt certificate via Scaleway. | ||
|
|
||
| ## I added a certificate to my Kubernetes Load Balancer via the Scaleway console, but it is not working correctly | ||
|
|
||
| You may have used the Scaleway console attach a certificate to your Kubernetes Kapsule Load Balancer, and then find that the SSL certificate does not work as expected afterwards, with connections lost and HTTPS traffic dropped. | ||
|
|
||
| ### Cause | ||
|
|
||
| Kubernetes Kapsule is a managed service, as are the Load Balancers created as part of the cluster. | ||
| Modifying a Kubernetes Load Balancer via the Scaleway console results in non-permanent modifications which are not known to the Kubernetes Kapsule service, and therefore end up being overwritten. | ||
|
|
||
| ### Solution | ||
|
|
||
| Always modify Kubernetes Load Balancers via the cluster's Cloud Controller Manager (CCM), using [Load Balancer annotations](/kubernetes/reference-content/using-load-balancer-annotations/). | ||
|
|
||
| The specific annotation to use can be found in the [Scaleway CCM documentation](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/loadbalancer-annotations.md#servicebetakubernetesioscw-loadbalancer-certificate-ids). | ||
|
|
||
|
|
||
| ## I have a different problem related to my Load Balancer SSL/TLS certificate | ||
|
|
||
| Check the following documentation: | ||
|
|
||
| - [How to add an SSL/TLS certificate](/load-balancer/how-to/add-certificate/) | ||
| - [Setting up SSL bridging, offloading or passthrough](/load-balancer/reference-content/ssl-bridging-offloading-passthrough/) | ||
| - [Load Balancer API Documentation: Certificates](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-certificate-get-an-ssltls-certificate) | ||
| - [Load Balancer Terraform Documentation: Certificates](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/lb_certificate) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,97 @@ | ||
| --- | ||
| meta: | ||
| title: I am having problems configuring my Load Balancer | ||
| description: Troubleshoot problems that you may experience when configuring your Load Balancer, such as adding backend servers, setting up Private Networks and dealing with security concerns. | ||
| content: | ||
| h1: I am having problems configuring my Load Balancer | ||
| paragraph: Troubleshoot problems that you may experience when configuring your Load Balancer, such as adding backend servers, setting up Private Networks and dealing with security concerns. | ||
| tags: load-balancer configuration backend server error security ip | ||
| dates: | ||
| validation: 2025-03-06 | ||
| posted: 2025-03-06 | ||
| categories: | ||
| - network | ||
| --- | ||
|
|
||
| If your problem concerns any of the following, see our specific documentation pages: | ||
|
|
||
| - [Troubleshooting certificate configuration](/load-balancer/troubleshooting/certificates/) | ||
| - [Setting up SSL bridging, offloading or passthrough](/load-balancer/reference-content/ssl-bridging-offloading-passthrough/) | ||
| - [Troubleshooting connection and HTTP errors](/load-balancer/troubleshooting/http-connection-errors/) | ||
| - General advice and help for configuring [frontends](/load-balancer/reference-content/configuring-frontends/), [backends](/load-balancer/reference-content/configuring-backends/) and [health checks](/load-balancer/reference-content/configuring-health-checks/) | ||
| - [Creating and configuring a Kubernetes Load Balancer](/kubernetes/reference-content/kubernetes-load-balancer/) | ||
|
|
||
| ## When adding a backend server to my Load Balancer, I get the message: IP is not owned by Scaleway | ||
|
|
||
| You may be trying to [add a backend server](/load-balancer/how-to/create-frontends-backends/#configuring-traffic-management) to your Load Balancer's backend, and experience the following error: | ||
|
|
||
| `HTTP 404: IP not owned by Scaleway` | ||
|
|
||
| ### Cause | ||
|
|
||
| You are trying to add the IP address of a backend server that is not owned by Scaleway (i.e. is not a Scaleway resource such as an Instance, Elastic Metal server or Managed Database). | ||
|
|
||
| ### Solution | ||
|
|
||
| Only certain Load Balancer types (L and XL) allow you to add non-Scaleway resources as backend servers. This is indicated as "Multi-cloud provider" compatibility in the [Load Balancer creation form](https://console.scaleway.com/load-balancer/lbs/create). | ||
|
|
||
| Either: | ||
|
|
||
| - [Resize](/load-balancer/how-to/resize-lb/) your Load Balancer to a type that is compatible with multi-cloud backend servers, or | ||
| - Use only Scaleway resources as backend servers for your Load Balancer | ||
|
|
||
| ## When adding a backend server via its private IP address, I get the message: IP doesn't exist | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @RoRoJ this error message doesn't exist actually |
||
|
|
||
| You may be trying to [add a backend server](/load-balancer/how-to/create-frontends-backends/#configuring-traffic-management) to your Load Balancer's backend using the server's private IP address, and experience an error message saying that the IP doesn't exist. | ||
|
|
||
| ### Cause | ||
|
|
||
| You are entering an incorrect IP address for your resource, or using private IP address that is outside the standard range for private networks. | ||
RoRoJ marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| ### Solution | ||
|
|
||
| - Check that you are entering the correct [private IP address](/vpc/how-to/attach-resources-to-pn/#how-to-view-the-resources-ip-address) for your resource, and that it is attached to the same Private Network as the Load Balancer. | ||
| - Verify that you are using a private IP address that is within the standard ranges used for private networks as described in [RFC1918](https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses). Only IP addresses from within one of these ranges are supported by Scaleway Load Balancer. | ||
RoRoJ marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
|
|
||
| ## My Load Balancer's Elastic Metal backend servers added via private IPs are all down | ||
|
|
||
| You may add Elastic Metal backend servers to your Load Balancer using their private IP address, and find they are marked as `DOWN` as soon as you add them. You are unable to work out why they are failing their health checks. | ||
|
|
||
| ### Cause | ||
|
|
||
| The Load Balancer is unable to successfully communicate with the Elastic Metal backend servers over the Private Network, resulting in failed health checks. | ||
|
|
||
| ### Solution | ||
|
|
||
| - Check that your health checks and backend servers are correctly configured to work together. | ||
| - Check that you have entered the correct [private IP address](/vpc/how-to/attach-resources-to-pn/#how-to-view-the-resources-ip-address) for your Elastic Metal server, and that it is attached to the same Private Network as the Load Balancer. | ||
| - Elastic Metal servers require additional manual configuration of their network interface, unlike Instances and other resource types. Ensure you have [followed the necessary configuration steps](/elastic-metal/how-to/use-private-networks/#how-to-configure-the-network-interface-on-your-elastic-metal-server-for-private-networks). | ||
|
|
||
|
|
||
| ## My Load Balancer's IP address is appearing in the backend application's logs, instead of the real client IP address. | ||
|
|
||
| You may find that as requests are passed from the client, through the Load Balancer, to your backend servers, that the client's original IP address is replaced with the Load Balancer's IP address in your backend application's logs. This is problematic if you need the original IP address for localization, security or other purposes. | ||
|
|
||
| ### Cause | ||
|
|
||
| Proxy Protocol has not been activated on your Load Balancer, meaning that information about the original client's connection is not being passed through to the backend servers. | ||
|
|
||
| ### Solution | ||
|
|
||
| Activate [Proxy Protocol](/load-balancer/reference-content/configuring-backends/#proxy-protocol) on your Load Balancer, and ensure that your backend server is [correctly configured](/tutorials/proxy-protocol-v2-load-balancer/) to handle this protocol. | ||
|
|
||
| ## Security rules not being applied as expected, and I am having difficulties in filtering incoming traffic through my Load Balancer | ||
RoRoJ marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| You may find that traffic is not being filtered as expected via your Load Balancer, and that Instances in your backend are not dropping unauthorized traffic as expected. | ||
|
|
||
| ### Cause | ||
|
|
||
| Instance security groups and/or Load Balancer ACLs are incorrectly configured. | ||
|
|
||
| ### Solution | ||
|
|
||
| Instance [security groups](instances/how-to/use-security-groups/) should still filter public traffic arriving on your backend server Instances, as long as that traffic is arriving over the public interface. This means the Instance in question must be attached to the Load Balancer via its public IP and not any private IP. | ||
| - Ensure that your Instance is attached via its public IP address. If your Instance behind a Load Balancer is attached via a private IP address, the security group rules will not be applied. | ||
| - Double check your [security group rules](/instances/how-to/use-security-groups/#how-to-choose-security-group-settings), to verify that they correspond to the required ports, protocols, and IP addresses configured for your Load Balancer | ||
| - To filter incoming traffic to your backend servers **as it passes through the Load Balancer**, use [Load Balancer ACLs](/load-balancer/how-to/create-manage-acls/). | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.