---
title: "Déployer un Load Balancer Public Cloud"
description: "Découvrez comment configurer le Load Balander pour Public Cloud"
url: https://docs.ovhcloud.com/fr/guides/public-cloud/network-services/octavia-use-lbaas-openstack
lang: fr
lastUpdated: 2025-09-17
---
# Déployer un Load Balancer Public Cloud

## Objectif

Vous trouverez ici les configurations d'un Load Balancer:

- Déploiement d'un Load Balancer HTTP basique Privé → Privé
- Déploiement d'un Load Balancer HTTP basique Public → Privé

## Prérequis

- Avoir un [projet Public Cloud](https://www.ovhcloud.com/fr/public-cloud/) dans votre compte OVHcloud
- Avoir un [réseau privé](/fr/guides/public-cloud/network-services/vrack.md) configuré dans votre projet
- [Préparer l’environnement pour utiliser l’API OpenStack](/fr/guides/public-cloud/cross-functional/compute-prepare-openstack-api-environment.md) en installant python-swiftclient.
- [Charger les variables d’environnement OpenStack](/fr/guides/public-cloud/cross-functional/compute-set-openstack-environment-variables.md).
- Avoir le client [OpenStack Octavia](https://docs.openstack.org/python-octaviaclient/latest/install/index.html) installé

## En pratique

### Load Balancer au sein de votre réseau privé (Privé → Privé)

Lorsque vous créez un Load Balancer, il obtient par défaut une IP privée dans le réseau privé sélectionné lors sa création.

Nous voulons équilibrer la charge entre les deux backends : `backend--1` et `backend--2`.

```bash
(os_client) ~ openstack server list     

+--------------------------------------+------------+--------+-----------------------------------------------------------------------+--------------+--------+
| ID                                   | Name       | Status | Networks                                                              | Image        | Flavor |
+--------------------------------------+------------+--------+-----------------------------------------------------------------------+--------------+--------+
| 5b8c722b-57d0-460a-b2c0-b0a681bf4e52 | backend--2 | ACTIVE | priv-net=10.0.111.243                                                 | Ubuntu 20.04 | d2-4   |
| 9a43ce4c-e0fe-4a54-81f5-aad3ac6f8e88 | backend--1 | ACTIVE | priv-net=10.0.112.172                                                 | Ubuntu 20.04 | d2-4   |
| 67b9372e-bf08-4c57-9945-42b07dbfcd36 | bastion    | ACTIVE | Ext-Net=2001:48f0:163:100::1662, 169.254.10.150; priv-net=10.0.109.243 | Ubuntu 20.04 | d2-8   |
+--------------------------------------+------------+--------+-----------------------------------------------------------------------+--------------+--------+
```

**Etape 1. Créez le Load Balancer**

```bash
openstack loadbalancer create --name loadbalancer_private_to_private --vip-subnet-id <private_subnet_id>
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| admin_state_up      | True                                 |
| availability_zone   | None                                 |
| created_at          | 2022-06-29T12:24:35                  |
| description         |                                      |
| flavor_id           | 2d4bc92c-38fc-4b50-9484-8351ab0c4e69 |
| id                  | 4db76fce-f8f7-435f-8031-716f82a7f1dc |
| listeners           |                                      |
| name                | loadbalancer_private_to_private      |
| operating_status    | OFFLINE                              |
| pools               |                                      |
| project_id          | 96575fa614c14aa7b001c7e121d772f2     |
| provider            | amphora                              |
| provisioning_status | PENDING_CREATE                       |
| updated_at          | None                                 |
| vip_address         | 10.0.3.50                            |
| vip_network_id      | d20943ed-5159-4805-b48a-2375dd93e480 |
| vip_port_id         | 631f240c-16f7-483f-b1c4-6eff7a8adcf4 |
| vip_qos_policy_id   | None                                 |
| vip_subnet_id       | 4ecfca39-6e87-496a-8692-2e7f43bf7767 |
| tags                |                                      |
+---------------------+--------------------------------------+
```

:::warning
**Load Balancer Flavors**

Notez que si vous ne fournissez pas le paramètre `--flavor` pendant la création, le load balancer sera de taille _small_.
:::

```bash
openstack loadbalancer flavor list
+--------------------------------------+--------+--------------------------------------+---------+
| id                                   | name   | flavor_profile_id                    | enabled |
+--------------------------------------+--------+--------------------------------------+---------+
| 2d4bc92c-38fc-4b50-9484-8351ab0c4e69 | small  | e9970d43-695e-4947-8005-38be80bc966a | True    |
| 4d6a92af-d4c8-4e81-8596-e3b14159e232 | medium | 24559467-a4dd-4712-9981-93276400fa17 | True    |
| fd43698c-0a2f-4124-9695-478f9114a07c | large  | 3ded4565-7bc7-40b3-9a2c-83077035b134 | True    |
+--------------------------------------+--------+--------------------------------------+---------+
```

:::warning
**Status**

La création du Load Balancer prendra un certain temps, essentiellement le temps de création de l'instance et la configuration du réseau.

Pour la configuration suivante, vous devrez attendre que le `provisioning_status` devienne `ACTIVE`.
:::

Vous pouvez déjà voir que notre Load Balancer est associé à une adresse IP Virtuelle (VIP) lors de sa création.

Il s'agit de l'adresse IP du Load Balancer à l'intérieur de notre réseau privé.

**Etape 2. Créez un listener**

```bash
openstack loadbalancer listener create --protocol-port 80 --protocol HTTP --name listener <loadbalancer_id>
+-----------------------------+--------------------------------------+
| Field                       | Value                                |
+-----------------------------+--------------------------------------+
| admin_state_up              | True                                 |
| connection_limit            | -1                                   |
| created_at                  | 2022-06-29T12:34:37                  |
| default_pool_id             | None                                 |
| default_tls_container_ref   | None                                 |
| description                 |                                      |
| id                          | e2e67b80-61e6-43bd-b1f1-703ab1abc7af |
| insert_headers              | None                                 |
| l7policies                  |                                      |
| loadbalancers               | 4db76fce-f8f7-435f-8031-716f82a7f1dc |
| name                        | listener                             |
| operating_status            | OFFLINE                              |
| project_id                  | 96575fa614c14aa7b001c7e121d772f2     |
| protocol                    | HTTP                                 |
| protocol_port               | 80                                   |
| provisioning_status         | PENDING_CREATE                       |
| sni_container_refs          | []                                   |
| timeout_client_data         | 50000                                |
| timeout_member_connect      | 5000                                 |
| timeout_member_data         | 50000                                |
| timeout_tcp_inspect         | 0                                    |
| updated_at                  | None                                 |
| client_ca_tls_container_ref | None                                 |
| client_authentication       | NONE                                 |
| client_crl_container_ref    | None                                 |
| allowed_cidrs               | None                                 |
| tls_ciphers                 | None                                 |
| tls_versions                | None                                 |
| alpn_protocols              | None                                 |
| tags                        |                                      |
+-----------------------------+--------------------------------------+
```

**Etape 3. Créez un pool**

```bash
openstack loadbalancer pool create --name pool --lb-algorithm ROUND_ROBIN --listener <listener_id> --protocol HTTP
+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| admin_state_up       | True                                 |
| created_at           | 2022-06-29T12:41:52                  |
| description          |                                      |
| healthmonitor_id     |                                      |
| id                   | f0c833f7-53bb-46b7-8818-637d89a68089 |
| lb_algorithm         | ROUND_ROBIN                          |
| listeners            | e2e67b80-61e6-43bd-b1f1-703ab1abc7af |
| loadbalancers        | 4db76fce-f8f7-435f-8031-716f82a7f1dc |
| members              |                                      |
| name                 | pool                                 |
| operating_status     | OFFLINE                              |
| project_id           | 96575fa614c14aa7b001c7e121d772f2     |
| protocol             | HTTP                                 |
| provisioning_status  | PENDING_CREATE                       |
| session_persistence  | None                                 |
| updated_at           | None                                 |
| tls_container_ref    | None                                 |
| ca_tls_container_ref | None                                 |
| crl_container_ref    | None                                 |
| tls_enabled          | False                                |
| tls_ciphers          | None                                 |
| tls_versions         | None                                 |
| tags                 |                                      |
| alpn_protocols       | None                                 |
+----------------------+--------------------------------------+
```

**Etape 4. Ajoutez les serveurs**

```bash
openstack loadbalancer member create --subnet-id <private_subnet_id> --address <server_ip_address>  --protocol-port 80 <pool_id>
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| address             | 10.0.3.123                           |
| admin_state_up      | True                                 |
| created_at          | 2022-06-29T12:48:55                  |
| id                  | fbe34622-2538-4896-bda3-d92ca66f7a30 |
| name                |                                      |
| operating_status    | NO_MONITOR                           |
| project_id          | 96575fa614c14aa7b001c7e121d772f2     |
| protocol_port       | 80                                   |
| provisioning_status | PENDING_CREATE                       |
| subnet_id           | 4ecfca39-6e87-496a-8692-2e7f43bf7767 |
| updated_at          | None                                 |
| weight              | 1                                    |
| monitor_port        | None                                 |
| monitor_address     | None                                 |
| backup              | False                                |
| tags                |                                      |
+---------------------+--------------------------------------+
```

**Etape 5. Utilisez votre Load Balancer**

```bash
root@bastion:~# curl http://10.0.3.50/backend.txt
Backend 1
root@bastion:~# curl http://10.0.3.50/backend.txt
Backend 2
```

### Load Balancer en utilisant une IP publique (Public → Privé)

Nous allons utiliser le Load Balancer préalablement déployé en réseau privé et utiliser une Floating IP OpenStack.

Nous devons créer une Floating IP sur le réseau public (Ext-Net) et associer cette IP au port VIP du Load Balancer.

Afin d'utiliser une Floating IP, nous devons créer un routeur L3 et configurer une _external gateway_ sur celui-ci.

> **Quel est le rôle d'une Floating IP ?**
>
> Les adresses Floating IP sont utilisées dans l'univers OpenStack pour exposer des ressources (via le port Neutron) vers Internet. Vous pouvez associer une Floating IP à un port de réseau privé **uniquement**.
>
> Vous pouvez exposer deux types de ressources :
>
> - Une instance avec un port privé
> - Avoir une adresse IP virtuelle (VIP) de Load Balancer.
>
> Actuellement, les Floating IPs ne supportent pas les IPv6.
>
> Vous pouvez en savoir plus sur notre page [Concepts](/fr/guides/public-cloud/network-services/additional-ip-vs-floating-ip.md).

**Etape 1. Créez le routeur**

```bash
openstack router create <router_name>
```

**Etape 2. Ajoutez une External Gateway sur votre routeur**

```bash
openstack router set --external-gateway Ext-Net <router_name>
```

**Etape 3. Connectez le routeur à votre réseau privé**

```bash
openstack router add subnet <router_id> <subnet_id>
```

**Etape 4. Maintenant vous pouvez créer une Floating IP sur le réseau public Ext-Net**

```bash
openstack floating ip create Ext-Net
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| created_at          | 2022-06-29T13:19:10Z                 |
| description         |                                      |
| dns_domain          | None                                 |
| dns_name            | None                                 |
| fixed_ip_address    | None                                 |
| floating_ip_address | 169.254.10.250                       |
| floating_network_id | b2c02fdc-ffdf-40f6-9722-533bd7058c06 |
| id                  | 5f1ad04e-f341-457b-a174-a1204ee4feef |
| name                | 169.254.10.250                       |
| port_details        | None                                 |
| port_id             | None                                 |
| project_id          | 96575fa614c14aa7b001c7e121d772f2     |
| qos_policy_id       | None                                 |
| revision_number     | 0                                    |
| router_id           | None                                 |
| status              | DOWN                                 |
| subnet_id           | None                                 |
| tags                | []                                   |
| updated_at          | 2022-06-29T13:19:10Z                 |
+---------------------+--------------------------------------+
```

**Etape 5 : Associez son ID à l'adresse VIP du Load Balancer**

```bash
openstack floating ip set --port <load_balancer_vip_port_id> <floating_ip_id>
```

**Etape 6 : Utilisez votre Load Balancer avec son IP publique**.

```bash
❯ curl http://169.254.10.250/backend.txt
Backend 2
❯ curl http://169.254.10.250/backend.txt
Backend 1
❯ curl http://169.254.10.250/backend.txt
Backend 2
❯ curl http://169.254.10.250/backend.txt
Backend 1
❯ curl http://169.254.10.250/backend.txt
Backend 2
```

#### Où placer la Public Gateway ?

La passerelle publique est définie par un routeur L3 attaché à un réseau privé avec une passerelle externe.

![diagram](/images/public-cloud/network-services/technical-resources-01-using-lbaas-in-openstack-environment/topology.png)
### Supprimer le Load Balancer

```bash
openstack loadbalancer delete [--cascade] [--wait] <load_balancer>
```

## Aller plus loin

[Premiers pas avec le service Load Balancer pour Public Cloud](/fr/guides/public-cloud/network-services/getting-started-load-balancer.md).

[Documentation officielle d'OpenStack Octavia](https://docs.openstack.org/octavia/latest/).

[Cookbook OpenStack Octavia](https://docs.openstack.org/octavia/latest/user/guides/basic-cookbook.html).

[OpenStack Floating IP](https://docs.openstack.org/ocata/user-guide/cli-manage-ip-addresses.html).

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur [ce lien](https://www.ovhcloud.com/fr/professional-services/) pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Échangez avec notre [communauté d’utilisateurs](https://community.ovhcloud.com/).

Rejoignez notre [Discord](https://discord.gg/ovhcloud) pour discuter avec les membres de l'équipe OVHcloud et d'autre utilisateurs.
