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 88d2589..db11a74 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 d4161b2..5884368 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 d0019a4..b81ef4b 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 d5f4e31..c2cf878 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 043e232..31a6199 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 790b475..f811e76 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 45e2c42..f0244b5 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 27a0e0c..b76a547 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.