Only for customers using the Qovery Managed clusters on AWS
Dear customer,
We are excited to inform you that in the upcoming days, we will integrate the AWS Application Load Balancers (ALB) Controller into our product, adding more network control and features.
The rollout of this feature will require a migration on your cluster to remove the old Network Load Balancers controller (NLB), with a possible impact on your applications. Check the rest of the article for more information.
Context
At Qovery, we initially started with Kubernetes’ built-in Network Load Balancer controller (NLB). It was the best choice at the beginning of our company since it simplified a lot of things (If you are interested, we have described all the reasons in our blog post here).
Over the past weeks, we have been working to get rid of this legacy part and integrate the ALB controller.
We are not migrating from NLB to ALB, we will still be using NLB under the hood. What is changing is the Kubernetes controller that we use to manage the load balancers on AWS
Benefits of Activating the ALB Controller
- Reduced Downtime: The ALB controller helps decrease the downtime for some applications during updates.
- Improved IP Forwarding: The original IP addresses are forwarded directly to your application, rather than the load balancer’s IP, providing enhanced transparency and traceability.
- We will soon add other functionalities that are available only on applications using the ALB controller.
ALB controller, the default choice for new clusters
The ALB controller feature will be enabled by default for all new clusters, ensuring that you benefit from its advantages right from the start.
Migrating an existing application to ALB
We encourage you to activate this feature as soon as you can to take advantage of the benefits listed above.
Since the switch creates a small downtime (see sections below), we will let you decide whenever you want to apply this change.
Test the switch on a dev/staging cluster before applying this change on your production cluster.
If no action is taken from you, we will force the migration to the ALB by the end of XXX ← UPDATE 21/10/2024: we won’t force the migration for now. We will send a separate communication to announce it but we strongly encourage you to start the migration by yourself.
If you have any questions or need assistance with the migration process, please do not hesitate to contact our support team or comment on this post.
Migration and Downtime
Activating the ALB controller involves a migration process with a maximum expected downtime of 10 minutes. This downtime is necessary because the current load balancer must be deleted and replaced as per AWS requirements. We strongly advise against enabling this advanced setting during your production hours to minimize any impact on your operations.
How to migrate
WARNING: as described above, a downtime is expected during this migration
- Requirements for customers using custom VPCs (Qovery Managed VPC does not require these steps):
- On public subnets: add a label
kubernetes.io/role/elb
with the value1
to the subnet where the ALB will be created. - On private subnets: add a label
kubernetes.io/role/internal-elb
with the value1
to the subnet where the ALB will be created. - On all subnets: add a label
kubernetes.io/cluster/<cluster-name>
with the valueshared
to the subnet where the ALB will be created.
-
Through the advanced settings of your cluster, activate the ALB by changing the value of the advanced settings
aws.eks.enable_alb_controller
totrue
. -
Once the value is updated, redeploy your cluster to apply the change.
-
Once the cluster redeploy is completed, redeploy any application exposing a TCP/UDP port or your container database exposed publicly. All your services exposed on an HTTP port are automatically migrated and no action is needed on your side.
Note: if you have custom domains, you don’t have nothing especially to do, they will be automatically redirected to the new load balancer.
Thanks
Alessandro