diff --git a/links/public-cloud/load-balancer-kubernetes b/links/public-cloud/load-balancer-kubernetes new file mode 100644 index 00000000000..b8865a9c86d --- /dev/null +++ b/links/public-cloud/load-balancer-kubernetes @@ -0,0 +1,15 @@ +- [de-de](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/) +- [en-asia](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/) +- [en-au](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/) +- [en-ca](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/) +- [en-gb](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/) +- [en-ie](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/) +- [en-sg](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/) +- [en-us](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/) +- [es-es](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/) +- [es-us](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/) +- [fr-ca](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/) +- [fr-fr](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/) +- [it-it](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/) +- [pl-pl](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/) +- [pt-pt](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/) \ No newline at end of file diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.de-de.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.de-de.md index dc4c76ad60e..fcb865ded2f 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.de-de.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.de-de.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/de/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/de/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/de/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/de/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/de/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/de/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/de/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/de/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/de/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/de/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-asia.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-asia.md index a4333521a2e..e828e7ff87e 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-asia.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-asia.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/asia/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/ | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/asia/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/asia/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/asia/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/asia/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/asia/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/asia/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/asia/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-au.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-au.md index 9fac7696aa1..c2ce176cbdd 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-au.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-au.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/en-au/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/en-au/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/en-au/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/en-au/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/en-au/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-au/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-au/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-au/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ca.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ca.md index 88bdb090c1c..dcb20742c89 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ca.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ca.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/en-ca/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/en-ca/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/en-ca/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/en-ca/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/en-ca/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-ca/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-ca/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-ca/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-gb.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-gb.md index 2fcea2b00d3..e0fdbb6498b 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-gb.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-gb.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/en-gb/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/en-gb/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/en-gb/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/en-gb/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/en-gb/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-gb/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-gb/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-gb/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ie.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ie.md index 1a9f4ec8360..70710c5a074 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ie.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-ie.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/en-ie/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/en-ie/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/en-ie/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/en-ie/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/en-ie/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-ie/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-ie/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-ie/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-sg.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-sg.md index bc70a735751..b8f9473b20a 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-sg.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-sg.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/en-sg/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/en-sg/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/en-sg/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/en-sg/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/en-sg/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-sg/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en-sg/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-sg/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-us.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-us.md index 8828ed86e5a..e0e971958a9 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-us.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.en-us.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/en/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/en/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/en/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/en/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/en/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/en/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/en/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/en/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-es.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-es.md index 79c72111e95..f913e791772 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-es.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-es.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/es-es/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/es-es/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/es-es/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/es-es/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/es-es/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/es-es/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/es-es/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/es-es/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-us.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-us.md index f413ffcb87a..f7049ae38b2 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-us.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.es-us.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/es/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/es/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/es/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/es/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/es/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/es/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/es/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/es/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/es/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/es/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-ca.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-ca.md index c626de59972..304b12af225 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-ca.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-ca.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/fr-ca/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/fr-ca/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/fr-ca/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/fr-ca/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/fr-ca/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/fr-ca/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/fr-ca/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/fr-ca/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-fr.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-fr.md index acc2b9339cc..918b3f2028b 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-fr.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.fr-fr.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/fr/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/fr/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/fr/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/fr/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/fr/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/fr/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/fr/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/fr/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.it-it.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.it-it.md index f97a91d42b2..9529039e3fe 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.it-it.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.it-it.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/it/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/it/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/it/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/it/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/it/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/it/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/it/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/it/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/it/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/it/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pl-pl.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pl-pl.md index 41bcecc8c52..aa354ffd134 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pl-pl.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pl-pl.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/pl/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/pl/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/pl/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/pl/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/pl/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/pl/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/pl/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/pl/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pt-pt.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pt-pt.md index 51191eb88aa..d1335406c33 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pt-pt.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/guide.pt-pt.md @@ -1,18 +1,18 @@ --- title: Expose your applications using OVHcloud Public Cloud Load Balancer excerpt: "How to expose your applications hosted on Managed Kubernetes Service using the OVHcloud Public Cloud Load Balancer" -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] > -> Usage of the [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) with Managed Kubernetes Service (MKS) is now GA. -> The LoadBalancer based on Octavia is not the default one yet. You must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. +> Usage of the [Public Cloud Load Balancer](/links/public-cloud/load-balancer) with Managed Kubernetes Service (MKS) is now in General Availability. +> However this LoadBalancer (based on Octavia project) is not the default one yet for clusterz running Kubernetes versions <1.31. For those clusters, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to deploy an Octavia LoadBalancer from your MKS cluster. > ## Objective -This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](https://www.ovhcloud.com/pt/public-cloud/kubernetes/). +This guide aims to explain how to use OVHcloud Public Cloud Load Balancer to expose your applications hosted on [Managed Kubernetes Service (MKS)](/links/public-cloud/kubernetes). If you're not comfortable with the different ways of exposing your applications in Kubernetes, or if you're not familiar with the notion of 'loadbalancer' service type, we do recommend to start by reading the guide explaining how to [expose your application deployed on an OVHcloud Managed Kubernetes Service](/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb). This guide details the different methods to expose your containerized applications hosted in Managed Kubernetes Service. Our Public Cloud Load Balancer is relying on the OpenStack Octavia project which provides a Cloud Controller Manager (CCM) allowing Kubernetes clusters to interact with Load Balancers. For Managed Kubernetes Service (MKS), this Cloud Controller is installed and configured by our team, allowing you to easily create, use and configure our Public Cloud Load Balancers. You can find the CCM opensource project documentation [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md). @@ -21,9 +21,9 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ## Requirements -### Kubernetes version +### Kubernetes version -To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: +To be able to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer), your Managed Kubernetes Service must run or have been upgraded to the following patch versions: | Kubernetes versions | | ------------------- | @@ -33,24 +33,32 @@ To be able to deploy [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/pu | 1.29.3-3 >= | | 1.30.2-1 >= | +Please note that for clusters running on those versions, you must use the annotation `loadbalancer.ovhcloud.com/class: octavia` to specify that you want to deploy [Public Cloud Load Balancer](/links/public-cloud/load-balancer) (based on Octavia project) for your MKS cluster. + +The following versions will use [Public Cloud Load Balancer](/links/public-cloud/load-balancer) as the default load balancing solution, you do not need to specify any annotation: + +| Kubernetes versions | +| ------------------- | +| 1.31 >= | + ### Network prerequisite to expose your Load Balancers publicly The first step is to make sure that you have an existing vRack on your Public Cloud Project. To do so you can follow this guide that explains how to [Configure a vRack for Public Cloud](/pages/public_cloud/public_cloud_network_services/getting-started-07-creating-vrack). -If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](https://www.ovhcloud.com/pt/public-cloud/floating-ip/) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](https://www.ovhcloud.com/pt/public-cloud/gateway/) (an OpenStack router) deployed on the subnet hosting your Load Balancer. +If you plan to expose your Load Balancer publicly, in order to attach a [Floating IP](/links/public-cloud/floating-ip) to your Load Balancer, it is mandatory to have an [OVHcloud Gateway](/links/public-cloud/gateway) (an OpenStack router) deployed on the subnet hosting your Load Balancer. -If it does not exist when you create your first [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/), an S size Managed Gateway will be automatically created. -That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](https://www.ovhcloud.com/pt/public-cloud/gateway/) can be created (manually or automatically - cf. [Creating a private network with Gateway](https://www.ovhcloud.com/pt/public-cloud/gateway/)) or is already existing. +If it does not exist when you create your first [Public Cloud Load Balancer](/links/public-cloud/load-balancer), an S size Managed Gateway will be automatically created. +That is why we do recommend deploying your MKS clusters on a network and subnet where an [OVHcloud Gateway](/links/public-cloud/gateway) can be created (manually or automatically - cf. [Creating a private network with Gateway](/links/public-cloud/gateway)) or is already existing. If you have an existing/already deployed cluster and if: - **The Subnet's GatewayIP is already used by an OVHcloud Gateway**, nothing needs to be done. The current OVHcloud Gateway (OpenStack Router) will be used. - **The subnet does not have an IP reserved for a Gateway**, you will have to provide or create a compatible subnet. Three options are available: - Edit an existing subnet to reserve an IP for a Gateway : please refer to the [Update a subnet properties](/pages/public_cloud/public_cloud_network_services/configuration-04-update_subnet) documentation. - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/pt/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancer: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code using the 'loadBalancersSubnetId' parameter. - **The GatewayIP is already assigned to a non-OVHcloud Gateway (OpenStack Router)**. Two options are available: - - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](https://www.ovhcloud.com/pt/public-cloud/gateway/)) + - Provide another compatible subnet: a subnet with an existing OVHcloud Gateway or with an IP address reserved for a Gateway ([Creating a private network with Gateway](/links/public-cloud/gateway)) - Use a subnet dedicated for your load balancers: this option can be used in the OVHcloud Control Panel under `Advanced parameters` > `Loadbalancer Subnet` or using APIs/Infra as Code with the 'loadBalancersSubnetId' parameter. ## Limitations @@ -71,14 +79,10 @@ When exposing your load balancer publicly (public-to-public or public-to-private > Note: Each publicly exposed Load Balancer has its own Public Floating IP. Outgoing traffic doesn't consume OVHcloud Gateway bandwidth. ([except for Public-to-Public mode](#public-to-public-scenario)) > -> [!warning] -> -> During the MKS-Public Cloud Load Balancer Beta (CCM), since the Public Cloud Load Balancer is already in General Availability phase, the Public Cloud Load Balancer usage as well as the other network components (Gateway & Floating IPs) will be billed. -> ## Instructions -During the beta phase, if you want a Kubernetes load balancer service to be deployed using [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) rather than the historical [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/) solution, you'll need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. +Depending on the Kubernetes version your cluster is using, if you want to use a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) rather than the historical [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) solution, you might need to add the annotation: `loadbalancer.ovhcloud.com/class: "octavia"` on your Kubernetes Service manifest. Please refer to the [versions matrix section](#kube-versions). Here's a simple example of how to use the Public Cloud Load Balancer @@ -104,7 +108,7 @@ metadata: name: test-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: octavia + loadbalancer.ovhcloud.com/class: octavia //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: small spec: ports: @@ -150,7 +154,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -178,7 +182,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 service.beta.kubernetes.io/openstack-internal-load-balancer: "true" labels: app: test-octavia @@ -208,7 +212,7 @@ metadata: name: my-lb-service namespace: test-lb-ns annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for cluster running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" //optional, default = small labels: app: test-octavia @@ -235,12 +239,11 @@ spec: - `loadbalancer.ovhcloud.com/class` - During the Beta phase, it is mandatory to specify the class of the load balancer you want to create. - Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in futur versions). Default value is 'iolb'. +Authorized values: 'octavia' = Public Cloud Load Balancer, 'iolb' = Loadbalancer for Managed Kubernetes Service (will be deprecated in future versions). If not specified, the default class of the MKS Kubernetes versions you are using will be applied, please refer to the [versions matrix section](#kube-versions). - `loadbalancer.ovhcloud.com/flavor` - Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. + Not a standard OpenStack Octavia annotation (specific to OVHcloud). The size used for creating the loadbalancer. Specifications can be found on the [Load Balancer specifications](/links/public-cloud/load-balancer) page. Authorized values => `small`,`medium`,`large`. Default is 'small'. - `service.beta.kubernetes.io/openstack-internal-load-balancer` @@ -350,7 +353,7 @@ spec: #### Resize your LoadBalancer -There is no proper way to "resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. +There is no proper way to "hot-resize" your loadbalancer yet (work in progress). The best alternative to change the flavor of your load balancer is to recreate a new Kubernetes Service that will use the same public IP as an existing one. You can find the complete HowTo and examples on our public Github repository: - First, make sure that the existing service is using the `loadbalancer.openstack.org/keep-floatingip` annotation. If it's not using it, the public Floating IP will be released (it can be added after the service creation). @@ -370,7 +373,7 @@ test-lb-todel LoadBalancer 10.3.107.18 141.94.215.240 80:30172/TCP metadata: name: my-medium-lb annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.ovhcloud.com/flavor: "medium" labels: app: demo-upgrade @@ -405,9 +408,9 @@ When exposing services like nginx-ingress-controller, it's a common requirement #### Migrate from Loadbalancer for Kubernetes to Public Cloud Load Balancer -In order to migrate from an existing [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/) to a [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) you will have to modify an existing Service and change its LoadBalancer class. +In order to migrate from an existing [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) to a [Public Cloud Load Balancer](/links/public-cloud/load-balancer) you will have to modify an existing Service and change its LoadBalancer class. -Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/) should have the following annotation: +Your existing LoadBalancer Service using [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) should have the following annotation: ```yaml annotations: @@ -418,7 +421,7 @@ annotations: ```yaml annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31, you can just remove the annotation. ``` ##### Step 2 - Apply the change @@ -429,7 +432,7 @@ kubectl apply -f your-service-manifest.yaml > [!warning] > -> As [Loadbalancer for Kubernetes](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/) and [Public Cloud Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. +> As [Loadbalancer for Kubernetes](/links/public-cloud/load-balancer-kubernetes) and [Public Cloud Load Balancer](/links/public-cloud/load-balancer) do not use the same solution for Public IP allocation, **it is not possible to keep the existing public IP** of your Loadbalancer for Kubernetes. > Changing the LoadBalancer class of your Service will lead to the creation of a new Loadbalancer and the allocation of a new Public IP (Floating IP). > @@ -446,7 +449,7 @@ kind: Service metadata: name: octavia-keepip-with-existing-ip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 #loadbalancer.openstack.org/keep-floatingip: "true" # Useless, since the FIP was provided, the FIP will not be managed by the MKS cluster spec: loadBalancerIP: 1.2.3.4 @@ -474,7 +477,7 @@ kind: Service metadata: name: octavia-with-fixed-vip annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/port-id: "" spec: type: LoadBalancer @@ -497,7 +500,7 @@ kind: Service metadata: name: octavia-ip-restrictions annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 spec: loadBalancerSourceRanges: - 1.2.3.4/32 @@ -521,7 +524,7 @@ kind: Service metadata: name: octavia-basic-shared annotations: - loadbalancer.ovhcloud.com/class: "octavia" + loadbalancer.ovhcloud.com/class: "octavia" //not required for clusters running kubernetes versions >= 1.31 loadbalancer.openstack.org/load-balancer-id: "" spec: type: LoadBalancer @@ -594,6 +597,6 @@ Visit the [Github examples repository](https://github.com/ovh/public-cloud-datab Visit our dedicated Discord channel: . Ask questions, provide feedback and interact directly with the team that builds our Container and Orchestration services. -If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/pt/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project. +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for a custom analysis of your project. Join our community of users on . diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.de-de.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.de-de.md index deea3aeec13..dc1aa47f5a7 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.de-de.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.de-de.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/de/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/de/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/de/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/de/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-asia.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-asia.md index 918e0ba6d88..9f546ebc30d 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-asia.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-asia.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/asia/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/asia/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/asia/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/asia/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-au.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-au.md index 0882b47aa90..0685740d789 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-au.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-au.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/en-au/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-au/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/en-au/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-au/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ca.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ca.md index 31d71a55028..728a7ca1738 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ca.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ca.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/en-ca/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/en-ca/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-ca/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-gb.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-gb.md index 8e2e6626db1..7bab34b5d5d 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-gb.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-gb.md @@ -1,15 +1,15 @@ --- title: Expose your app deployed on an OVHcloud Managed Kubernetes Service -excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/en-gb/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/en-gb/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-gb/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ie.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ie.md index 3787551f1bf..d96b5a57165 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ie.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-ie.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/en-ie/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-ie/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-sg.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-sg.md index 42569409f71..3d353be6808 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-sg.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-sg.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/en-sg/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/en-sg/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en-sg/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-us.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-us.md index 9eabe2ea6ab..848dcc97df8 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-us.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.en-us.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/en/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/en/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/en/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/en/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-es.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-es.md index 8d92fdb76f3..9b4d5f9341b 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-es.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-es.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/es-es/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/es-es/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/es-es/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/es-es/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-us.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-us.md index e249e1e2234..1d0dab44693 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-us.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.es-us.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/es/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/es/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/es/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/es/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-ca.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-ca.md index 3a0c98274c8..3aac6425e4f 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-ca.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-ca.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/fr-ca/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/fr-ca/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/fr-ca/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-fr.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-fr.md index f93027d6da0..4c510c75fac 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-fr.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.fr-fr.md @@ -1,15 +1,15 @@ --- title: Expose your app deployed on an OVHcloud Managed Kubernetes Service excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/fr/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/fr/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/fr/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/fr/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.it-it.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.it-it.md index c0888d9cbf2..c51e079b088 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.it-it.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.it-it.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/it/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/it/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/it/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/it/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pl-pl.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pl-pl.md index 03acd3a0247..c46184d3d6d 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pl-pl.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pl-pl.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/pl/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/pl/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/pl/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/pl/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/). diff --git a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pt-pt.md b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pt-pt.md index e2af6a898bc..999eca1e5af 100644 --- a/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pt-pt.md +++ b/pages/public_cloud/containers_orchestration/managed_kubernetes/using-lb/guide.pt-pt.md @@ -1,15 +1,15 @@ --- -title: Using the OVHcloud Managed Kubernetes LoadBalancer -excerpt: Find out how to use and deploy an OVHcloud Managed Kubernetes LoadBalancer -updated: 2024-09-11 +title: Expose your app deployed on an OVHcloud Managed Kubernetes Service +excerpt: Find out how to use and expose your app deployed on an OVHcloud Managed Kubernetes Service +updated: 2024-09-23 --- > [!warning] -> This documentation is about "LoadBalancer for K8s". If you want to benefit from the future MKS LoadBalancer implementation based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer/). +> The Loadbalancer section of this documentation is about "LoadBalancer for Managed Kubernetes Service. If you want to benefit from the new MKS LoadBalancing solution "Public Cloud LoadBalancer" based on Octavia LoadBalancer, please refer to [this page](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). > -> To force the usage of "LoadBalancer for K8s" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your K8s Service. +> To force the usage of "LoadBalancer for Managed Kubernetes" in your MKS cluster, add this annotation `loadbalancer.ovhcloud.com/class: iolb` to your Kubernetes Service. > -> Note: "LoadBalancer for K8s" will be replaced by the Octavia implementation. +> Note: Starting from MKS Kubernetes version 1.31, "LoadBalancer for Managed Kubernetes" is no longer the default loadbalancer solution and will be replaced by Public Cloud Loadbalancer. > ## Objective @@ -56,11 +56,11 @@ It's rather cumbersome to use `NodePort` `Services` in production. As you are us > [!warning] > In our OVHcloud Managed Kubernetes you have an easy way to access `NodePort` services. You need to get the *nodes* URL, an URL solving via round-robin DNS to one random node of your cluster. As `NodePort` services are exposed in the same port on every Node, you can use this *nodes* URL to access them. -> +> > In order to get the nodes URL, you get the *control plane* URL (the one given on `kubectl cluster-info`) and add the `nodes` element between the first and the second element of the URL -> +> > Example: -> +> > ``` > $ kubectl cluster-info > Kubernetes control plane is running at https://xxxxxx.c1.gra9.k8s.ovh.net @@ -91,18 +91,16 @@ The `LoadBalancer` is the best option for a production environment, with two cav OVHcloud currently provides two types of load balancers that can be used with Managed Kubernetes Services: -- [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. -- [Public Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](https://www.ovhcloud.com/pt/public-cloud/floating-ip/), the possibility to collect metrics and TCP/UDP protocols. +- [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes), this load balancer type can only be used to expose resources of a Managed Kubernetes Service. It supports up to 2000 requests/second and a 200Mbits/s bandwidth. Please note that this Loadbalancer will be depracated from MKS Kubernetes version 1.32 and upwards. +- [Public Load Balancer](/links/public-cloud/load-balancer), based on the OpenStack Octavia project, this load balancer type can also be used with standard OVHcloud instances. You can choose between three Load Balancer sizes (S,M,L), providing up to 40k requests/second and a 2 Gbits/second bandwidth. Other advantages are the capability to expose your Load Balancer privately (private-to-private) or publicly (public-to-private or public-to-public) using [Floating IPs](/links/public-cloud/floating-ip), the possibility to collect metrics and TCP/UDP protocols. -> [!warning] -> Usage of the [Public Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) with a Managed Kubernetes Service is currently in Beta phase, you can retrieve all the related information and request an access by joining our [Container & Orchestration dedicated Discord channel](https://discord.gg/ovhcloud). ### Supported annotations -> [!primary] -> This part of the documentation applies to [Load Balancer for Managed Kubernetes](https://www.ovhcloud.com/pt/public-cloud/load-balancer-kubernetes/). +> [!primary] +> This part of the documentation applies to [Load Balancer for Managed Kubernetes](/links/public-cloud/load-balancer-kubernetes). > -> A dedicated documentation for [Public Load Balancer](https://www.ovhcloud.com/pt/public-cloud/load-balancer/) will be published with the release of the Beta phase. +> A dedicated documentation for [Public Load Balancer](/links/public-cloud/load-balancer) is available, please look at the [Expose your applications using a load balancer](/pages/public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer). There are several annotations available to customize your load balancer: @@ -195,7 +193,7 @@ deployment.apps/hello-world-deployment configured ``` > [!primary] -> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. +> The application you have just deployed is a simple Nginx server with a single static *Hello World* page. > Basically it just deploys the Docker image [`ovhplatform/hello`](https://hub.docker.com/r/ovhplatform/hello/) ### List the services @@ -283,6 +281,6 @@ No resources found ## Go further -- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://www.ovhcloud.com/pt/professional-services/) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. +- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. - Join our [community of users](https://community.ovh.com/en/).