From 6443e120e7f8eed7e8b280b11379acc9f4b4ea32 Mon Sep 17 00:00:00 2001 From: "maxime.hubert" Date: Mon, 6 Oct 2025 10:48:21 +0200 Subject: [PATCH 1/2] feat(mks): document new flavor annotation for MKS standard plan --- .../{readme.md => README.md} | 12 +++---- .../basic_lb/{readme.md => README.md} | 0 .../basic_lb_keepip/{readme.md => README.md} | 0 .../basic_lb_udp_tcp/{readme.md => README.md} | 0 .../{readme.md => README.md} | 0 .../basic_lb_with_flavor/lb_flavor.yaml | 12 ++++--- .../nginx_ingress/value.yaml | 4 ++- .../private_lb/{readme.md => README.md} | 0 .../resize_lb/1_small_service.yaml | 8 ++--- .../resize_lb/2_small_service.yaml | 8 ++--- .../resize_lb/3_medium_service_deploy.yaml | 12 ++++--- .../resize_lb/README.md | 33 ++++++++++++++++--- .../tcp_tweak_lb/README.md | 2 +- 13 files changed, 60 insertions(+), 31 deletions(-) rename containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/{readme.md => README.md} (94%) rename containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb/{readme.md => README.md} (100%) rename containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_keepip/{readme.md => README.md} (100%) rename containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_udp_tcp/{readme.md => README.md} (100%) rename containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/{readme.md => README.md} (100%) rename containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/private_lb/{readme.md => README.md} (100%) diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/readme.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/README.md similarity index 94% rename from containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/readme.md rename to containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/README.md index 88d25893..db11a74c 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/readme.md +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/README.md @@ -24,14 +24,12 @@ This guide uses some concepts that are specific to our Public Cloud Load Balance ### Prerequisites -To be able to deploy a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/), you should have a running Managed Kubernetes Service and it must run or have been upgraded to the following patch versions: +To be able to deploy a [Public Cloud Load Balancer](https://www.ovhcloud.com/en-ie/public-cloud/load-balancer/), you should have a running Managed Kubernetes Service `>=1.31` or in one of the following patch versions: | Kubernetes versions | -|-------------| -| 1.24.13-3>= | -| 1.25.9-3>= | -| 1.26.4-3>= | -| 1.27>= | +| ------------------- | +| 1.29.3-3 >= | +| 1.30.2-1 >= | ### Setup @@ -56,8 +54,6 @@ metadata: app: test-publicCloudLB name: test-lb-service namespace: test-lb-ns - annotations: - loadbalancer.ovhcloud.com/flavor: "small" spec: ports: - name: 80-80 diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb/readme.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb/README.md similarity index 100% rename from containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb/readme.md rename to containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb/README.md diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_keepip/readme.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_keepip/README.md similarity index 100% rename from containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_keepip/readme.md rename to containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_keepip/README.md diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_udp_tcp/readme.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_udp_tcp/README.md similarity index 100% rename from containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_udp_tcp/readme.md rename to containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_udp_tcp/README.md diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/readme.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/README.md similarity index 100% rename from containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/readme.md rename to containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/README.md diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/lb_flavor.yaml b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/lb_flavor.yaml index d4161b2c..58843682 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/lb_flavor.yaml +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/basic_lb_with_flavor/lb_flavor.yaml @@ -3,15 +3,17 @@ kind: Service metadata: name: publicCloudLB-medium annotations: - loadbalancer.ovhcloud.com/flavor: "medium" + # Use `openstack loadbalancer flavor list` to get the full list of available flavors. + loadbalancer.ovhcloud.com/flavor: "medium" # Name of a loadbalancer flavor, used in MKS Free ONLY. + loadbalancer.openstack.org/flavor-id: xxx # UUID of a loadbalancer flavor, used in MKS Standard ONLY. labels: app: test-publicCloudLB spec: ports: - - name: client - port: 80 - protocol: TCP - targetPort: 80 + - name: client + port: 80 + protocol: TCP + targetPort: 80 selector: app: nginx type: LoadBalancer diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/nginx_ingress/value.yaml b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/nginx_ingress/value.yaml index d0019a4e..b81ef4b3 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/nginx_ingress/value.yaml +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/nginx_ingress/value.yaml @@ -2,6 +2,8 @@ controller: service: annotations: loadbalancer.openstack.org/proxy-protocol: "true" - loadbalancer.ovhcloud.com/flavor: "large" # OVHcloud Public Cloud loadbalancer flavor list: https://help.ovhcloud.com/csm/en-ie-public-cloud-network-octavia-use-lbaas-openstack?id=kb_article_view&sysparm_article=KB0050296 + # Use `openstack loadbalancer flavor list` to get the full list of available flavors. + loadbalancer.ovhcloud.com/flavor: "large" # Name of a loadbalancer flavor, used in MKS Free ONLY. + loadbalancer.openstack.org/flavor-id: xxx # UUID of a loadbalancer flavor, used in MKS Standard ONLY. config: use-proxy-protocol: "true" diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/private_lb/readme.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/private_lb/README.md similarity index 100% rename from containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/private_lb/readme.md rename to containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/private_lb/README.md diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/1_small_service.yaml b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/1_small_service.yaml index d5f4e313..c2cf878c 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/1_small_service.yaml +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/1_small_service.yaml @@ -6,10 +6,10 @@ metadata: app: test-publicCloudLB spec: ports: - - name: client - port: 80 - protocol: TCP - targetPort: 80 + - name: client + port: 80 + protocol: TCP + targetPort: 80 selector: app: nginx type: LoadBalancer diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/2_small_service.yaml b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/2_small_service.yaml index 043e2329..31a61997 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/2_small_service.yaml +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/2_small_service.yaml @@ -8,10 +8,10 @@ metadata: app: test-publicCloudLB spec: ports: - - name: client - port: 80 - protocol: TCP - targetPort: 80 + - name: client + port: 80 + protocol: TCP + targetPort: 80 selector: app: nginx type: LoadBalancer diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/3_medium_service_deploy.yaml b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/3_medium_service_deploy.yaml index 790b475c..f811e767 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/3_medium_service_deploy.yaml +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/3_medium_service_deploy.yaml @@ -4,15 +4,19 @@ apiVersion: v1 kind: Service metadata: name: publicCloudLB-medium-upgraded + annotations: + # Use `openstack loadbalancer flavor list` to get the full list of available flavors. + loadbalancer.ovhcloud.com/flavor: medium # Name of a loadbalancer flavor, used in MKS Free ONLY. + loadbalancer.openstack.org/flavor-id: yyy # UUID of a loadbalancer flavor, used in MKS Standard ONLY. labels: app: test-publicCloudLB spec: loadBalancerIP: xx.xx.xx.xx # Public Floating IP address from the previous service ports: - - name: client - port: 81 - protocol: TCP - targetPort: 80 + - name: client + port: 81 + protocol: TCP + targetPort: 80 selector: app: nginx type: LoadBalancer diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md index 45e2c422..712d2897 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md @@ -1,13 +1,38 @@ # Resize your LoadBalancer -### Objective -There is no proper way to 'resize' your Load Balancer from one flavor to another 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. +## Objective +There is no proper way to 'resize' your Load Balancer from one flavor to another yet (see the related [github issue](https://github.com/ovh/public-cloud-roadmap/issues/418) for more information). 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. OVHcloud Public Cloud LoadBalancer flavors: https://help.ovhcloud.com/csm/en-ie-public-cloud-network-octavia-use-lbaas-openstack?id=kb_article_view&sysparm_article=KB0050296 -### Example +## Prerequisites for MKS standard plan -On this example we will create a LoadBalancer using a 'small' flavor, then we will make sure that the Public IP will not be released from your project and finally we will create a new loadBalancer using a 'medium' flavor that will replace the old one and use the same Public IP. +* Get a running MKS cluster with a MKS Standard plan, + +* Prepare an authenticated OpenStack CLI for your Public Cloud project, make sure you consult the following guides: + - [Prepare the environment to use the OpenStack API](https://help.ovhcloud.com/csm/en-ie-public-cloud-compute-prepare-openstack-api-environment?id=kb_article_view&sysparm_article=KB0051001) by installing python-openstackclient. + - [Load the OpenStack environment variables](https://help.ovhcloud.com/csm/en-ie-public-cloud-compute-set-openstack-environment-variables?id=kb_article_view&sysparm_article=KB0050930). + +* Select a flavor for your loadbalancer. [More information](https://www.ovhcloud.com/en/public-cloud/load-balancer/) + +* Get the ID of the flavor your selected, using `openstack loadbalancer flavor list` + +```console ++-----+--------+--------------------------------------+---------+ +| id | name | flavor_profile_id | enabled | ++-----+--------+--------------------------------------+---------+ +| zzz | large | e23251e0-5ae0-4d03-824d-f3c3f5ab352c | True | +| aaa | xl | e5e1111e-23ff-4f4a-978b-ea720e8911b5 | True | +| xxx | small | 369f5329-86cb-40c8-b555-c8de09262966 | True | +| yyy | medium | b3f09d32-9c2d-4835-b0f5-12ba58bd8339 | True | ++-----+--------+--------------------------------------+---------+ +``` + +* Replace the`yyy` pattern in the file `3_medium_service_deploy.yaml` before executing the following steps. + +## Example of a Load Balancer resize + +On this example, a Load Balancer will be created using the 'small' flavor (it is selected by default when no annotation is given). Then we will make sure that the Public IP will not be released from your project and finally we will create a new loadBalancer using a 'medium' flavor that will replace the old one and use the same Public IP. Deploy a Load Balancer Service using a 'small' flavor ```shell diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/tcp_tweak_lb/README.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/tcp_tweak_lb/README.md index 27a0e0cb..b76a5473 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/tcp_tweak_lb/README.md +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/tcp_tweak_lb/README.md @@ -1,4 +1,4 @@ # Basic nginx Deployment ## Description -Here is a basic example of tcp configuration tweaks. You can refer to the official Openstack Octavia documentation https://docs.openstack.org/api-ref/load-balancer/v2/#create-listener for ful details. +Here is a basic example of tcp configuration tweaks. You can refer to the official Openstack Octavia documentation https://docs.openstack.org/api-ref/load-balancer/v2/#create-listener for full details. From 0dbb8912c7ad1c5b2dfecfed01998bd42603b1bc Mon Sep 17 00:00:00 2001 From: Aurelie Vache Date: Tue, 7 Oct 2025 14:02:29 +0200 Subject: [PATCH 2/2] Update containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md --- .../use-public-cloud-load-balancer/resize_lb/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md index 712d2897..f0244b57 100644 --- a/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md +++ b/containers-orchestration/managed-kubernetes/use-public-cloud-load-balancer/resize_lb/README.md @@ -28,7 +28,7 @@ OVHcloud Public Cloud LoadBalancer flavors: https://help.ovhcloud.com/csm/en-ie- +-----+--------+--------------------------------------+---------+ ``` -* Replace the`yyy` pattern in the file `3_medium_service_deploy.yaml` before executing the following steps. +* Replace the `yyy` pattern in the file `3_medium_service_deploy.yaml` before executing the following steps. ## Example of a Load Balancer resize