Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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.