ovh / public-cloud-roadmap

Agile roadmap for OVHcloud Public Cloud services. Discover the features our product teams are working on, comment and influence our backlog.
https://www.ovhcloud.com/en/public-cloud/
187 stars 5 forks source link

[MKS] Support Public Cloud Loadbalancer as load balancing solution #603

Open antonin-a opened 1 month ago

antonin-a commented 1 month ago

As a MKS user I would like to be able to use Public Cloud Load Balancer as load balancing solution for my MKS clusters. So that I can benefit from the performances and features of Public Cloud Loadbalancer.

Our historical load balancer Loadbalancer for Managed Kubernetes was dedicated to our Managed Kubernetes Service, at the end of 2023 we launched the Public Cloud Load Balancer that was usable to load balance traffic on your public cloud instances, it is now also supported for your Managed Kubernetes Service nodes.

This means you can use a single solution to manage load balancing on both your public cloud instances and your Managed Kubernetes Service clusters.

Based on the Octavia project, Public Cloud Loadbalancer is a high-performance, open-source load balancing solution part of the OpenStack Foundation. It is designed to provide advanced load balancing features, enabling optimized traffic management to your applications hosted on our Public Cloud.

Here is a short comparison table: Load balancer for Kubernetes Public Cloud Load Balancer
Max number of connections 10 000 up to 40 000*
Max number of HTTP requests 2 000 up to 10 000*
Bandwidth 200 Mbit/s up to 2 Gbit/s(up/down)
Supported protocol TCP TCP/UDP
Supported load balancing layers L4 L4 / L7**
Capacity to export metrics and logs ✔️
Private to private scenario ✔️
Floating IP ✔️

*current limitation with L plan, larger plans to come. **using Openstack Octavia ingress-controller component.

Important announcement:

For MKS cluster running kubernetes version 1.31 and above, the Public Cloud Load Balancer will be the default load balancing solution. The is no impact on existing services and clusters. For clusters running Kubernetes versions 1.31 and above, the deployment/redeployment of a Kubernetes manifest for a 'Loadbalancer' service without specifying a 'class', will create a Public Cloud Loadbalancer , for more details you can refer to our documentation.

Breaking change:

Unlike the Loadbalancer for Managed Kubernetes, with the Public Cloud Load Balancer, if you wish to expose your LoadBalancer publicly, it is mandatory use a subnet that has an OVHcloud Gateway (or an IP address available for creating one). For more information, and to make sure that your networks are correctly setup, please refer to the following documentation.

matmicro commented 1 month ago

In a mail thread you mentioned about Octavia LB as default LB for MKS on Kubernetes 1.31

What about MKS cluster in Kubernetes 1.30 that are already using Octavia LB and upgrading to Kubernetes 1.31

Will the upgrade be transparent, with no re-create of the LB resources ? (LB, floating IP)

antonin-a commented 1 month ago

Good point @matmicro, no impact for existing users part of the Beta phase that are already using Public Cloud Load Balancer. You can keep the 'octavia' annotation or remove it from your manifests, with 1.31 clusters the behavior will be the same.