---
title: "Load balancers"
slug: "load-balancer-setup"
source: "https://app.cloudpe.com/help/load-balancer-setup"
updated: "2026-08-30T19:03:44.381Z"
---

# Load balancers

## Overview

Load balancers distribute incoming traffic across several backend instances so an application stays reachable when one backend fails or when traffic grows. CloudPe load balancers are managed for you: you create the load balancer on a VPC subnet, add one or more listeners for the ports you want to accept traffic on, attach a pool with a balancing algorithm, and register your instances as pool members. An optional health monitor removes unhealthy members from rotation automatically.

A load balancer can be reached on a private VIP inside your VPC, on a VIP allocated directly on a public network, or on a floating IP associated with its private VIP. The floating IP option keeps the public address in your project when the load balancer is deleted, so you can reuse the same address later.

Load balancers are managed from **NETWORK** → **Load Balancers** in the dashboard.

## Before you start

- Project and region: select the project and region that will host the load balancer. The VIP network/subnet and all pool member subnets must belong to the same project and region as the load balancer.
- Network: create the VPC network and subnet first, and make sure your backend instances already have addresses on that subnet. See [VPC networks and subnets](/help/vpc-networks-subnets).
- Permissions: `load_balancers:read` to view the list, `load_balancers:create` to create load balancers, listeners, pools, members and health monitors, `load_balancers:update` to edit, and `load_balancers:delete` to remove them. Using a floating IP also requires access to the project's floating IPs.
- Billing: a load balancer is a billable resource, so your account must have completed KYC and have a wallet balance (prepaid) or an approved postpaid arrangement before the create call is accepted.
- Quota: the project must have load balancer quota available, and if you ask for a floating IP, floating-IP quota as well. Both are checked before anything is provisioned.
- Region support: the load balancer service must be enabled in the selected region, and high-availability topology requires a region that offers it.

## Steps

1. Open **NETWORK** → **Load Balancers**.

   ![](/kb/networking/load-balancer-setup-01-list.png)

2. Click **Create Load Balancer**.
3. In the **Create Load Balancer** dialog, give the load balancer a name and choose the region, VPC network and subnet for the VIP.
4. Choose how the load balancer will be reached:
   - keep the VIP on a private subnet for internal-only traffic;
   - place the VIP on a public/external subnet — the public address is released when the load balancer is deleted;
   - keep the VIP private and attach a floating IP — the floating IP is a normal project resource that survives deletion of the load balancer and can be reused.
5. Choose the topology: Standard, or High Availability if the region offers it.

   ![](/kb/networking/load-balancer-setup-02-create.png)

6. Submit the form. The load balancer is provisioned asynchronously and appears as pending until the provider reports it active; the list and detail views reconcile the status for you, and **Refresh** forces an immediate re-read.
7. Open the load balancer from the list to reach its detail page.

   ![](/kb/networking/load-balancer-setup-03-detail.png)

8. Click **Add Listener** and choose the protocol (HTTP, HTTPS, TCP or UDP) and the port to accept traffic on.
9. Click **Add Pool** and choose the backend protocol and the balancing algorithm — round robin, least connections, or source IP for simple session affinity.
10. Register your backend instances as pool members. Each member needs its address, the subnet the address belongs to, and the backend port. Members can be added with the API (see below).
11. Add a health monitor to the pool so failing members are taken out of rotation. Health monitors can check over HTTP, HTTPS, TCP or PING. A pool can have only one health monitor.

## API

All calls use the API host https://app.cloudpe.com and a bearer token.

Available operations:

| Method | Path |
|---|---|
| GET | `/api/v1/load-balancers` |
| POST | `/api/v1/load-balancers` |
| GET | `/api/v1/load-balancers/{lb_id}` |
| PUT | `/api/v1/load-balancers/{lb_id}` |
| DELETE | `/api/v1/load-balancers/{lb_id}` |
| GET | `/api/v1/load-balancers/{lb_id}/listeners` |
| POST | `/api/v1/load-balancers/{lb_id}/listeners` |
| DELETE | `/api/v1/load-balancers/{lb_id}/listeners/{listener_id}` |
| GET | `/api/v1/load-balancers/{lb_id}/pools` |
| POST | `/api/v1/load-balancers/{lb_id}/pools` |
| DELETE | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}` |
| GET | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}/members` |
| POST | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}/members` |
| DELETE | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}/members/{member_id}` |
| GET | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}/health-monitor` |
| POST | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}/health-monitor` |
| DELETE | `/api/v1/load-balancers/{lb_id}/pools/{pool_id}/health-monitor` |

Create a load balancer:

```bash
curl -X POST "https://app.cloudpe.com/api/v1/load-balancers" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "public-lb",
    "project_id": "<project-id>",
    "region_id": "<region-id>",
    "vip_subnet_id": "<subnet-id>"
  }'
```

To have a floating IP allocated and associated with the VIP, add `"assign_floating_ip": true` and `"floating_ip_network_id": "<external-network-id>"`. To attach a floating IP the project already owns, send `"floating_ip_id": "<floating-ip-id>"` instead — the two options are mutually exclusive.

Add a listener:

```bash
curl -X POST "https://app.cloudpe.com/api/v1/load-balancers/<lb-id>/listeners" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "HTTP",
    "protocol_port": 80
  }'
```

Add a pool:

```bash
curl -X POST "https://app.cloudpe.com/api/v1/load-balancers/<lb-id>/pools" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "HTTP",
    "lb_algorithm": "ROUND_ROBIN",
    "listener_id": "<listener-id>"
  }'
```

Register a member (the address must sit inside the given subnet):

```bash
curl -X POST "https://app.cloudpe.com/api/v1/load-balancers/<lb-id>/pools/<pool-id>/members" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "<member-ip>",
    "subnet_id": "<subnet-id>",
    "weight": 1
  }'
```

Retrieving a single load balancer also refreshes its state, and that of its listeners and pools, from the provider.

## Limits & billing

- Load balancers are billed hourly at a flat per-load-balancer rate. Prepaid wallets are debited each hour; postpaid organizations see a load balancer line item on the invoice.
- The flat rate covers the load balancer together with its listeners and pools — those are not billed separately.
- Billing starts when the load balancer is provisioned and stops when it is deleted.
- A floating IP or public VIP attached to the load balancer and outbound data transfer are metered separately under their own network charges.
- Load balancers, listeners, pools and members are subject to per-project quotas; a request that would exceed them is rejected before anything is created.
- Deleting a load balancer does not release a floating IP that was attached to it — the address stays in your project as an ordinary floating IP.

## Troubleshooting

| Error | Cause and fix |
|---|---|
| `Octavia service not configured for this region` | The load balancer service is not available in the region you selected. Create the load balancer in a region where it is offered. |
| `High-availability load balancers are not available in this region (no ACTIVE_STANDBY flavor). Choose Standard topology.` | The region has no high-availability option. Re-create with the Standard topology, or pick another region. |
| `Could not verify high-availability load balancer support for this region. Please retry, or create a Standard load balancer.` | A transient provider lookup failure. Retry the create, or create a Standard load balancer. |
| `vip_subnet_id {…} does not belong to the selected project and region` | The VIP subnet belongs to a different project or region. Pick a subnet from the same project and region as the load balancer. |
| `vip_network_id {…} does not belong to the selected project and region` | Same cause as above for the VIP network. |
| `subnet_id is required for pool members` | Include the subnet the member address belongs to when adding a member. |
| `Member address {…} is not inside subnet CIDR {…}` | The member IP is outside the subnet you referenced. Use the instance's address on that subnet. |
| `subnet_id {…} does not belong to the load balancer project/region` | Members must sit on a subnet in the load balancer's own project and region. |
| `Load balancer not yet provisioned in Octavia` | The load balancer is still being created. Wait for it to become active, then retry. |
| `Pool not yet provisioned in Octavia` | The pool is still being created. Wait, then add the member or health monitor. |
| `listener_id does not belong to this load balancer` | The listener referenced by the pool belongs to a different load balancer. |
| `default_pool_id does not belong to this load balancer` | The pool referenced by the listener belongs to a different load balancer. |
| `Pool already has a health monitor` | A pool can have only one health monitor. Delete the existing monitor before creating a new one. |
| `floating_ip_network_id {…} is not an accessible external network for this project and region` | Choose an external network your project is entitled to use in that region. |
| `Floating IP {…} was just claimed by another operation. Choose a different floating IP.` | Another operation took the address first. Retry with a different floating IP. |
| `Project is not yet provisioned in OpenStack; cannot allocate a floating IP for the load balancer.` | Wait until the project finishes provisioning, then retry the create. |
| `Load balancer was created but its VIP port is not yet available, so a floating IP could not be attached.` | The load balancer is usable on its private VIP. Retry attaching a public address once the VIP port exists. |
| `Load balancer was created but the floating IP could not be allocated/associated: {…}. The load balancer remains available on its private VIP.` | The load balancer was kept. Check the floating IP quota and the external network, then retry. |
| `Quota exceeded: {…}` | The project has reached a quota. Delete unused resources or request an increase. |
| `Missing permission: {…}` | Your role lacks the required `load_balancers:*` permission. Ask an organization administrator to grant it. |
| `Region not found or inactive` | Select an active region. |
| `Load balancer not found` | The load balancer id is wrong or it was deleted. |

## FAQ

**How long does a new load balancer take to become active?**
Provisioning is asynchronous, so a new load balancer is reported as pending first. The dashboard reconciles the state in the background and refreshes it when you open the detail page, so it turns active on its own.

**Which listener protocols can I use?**
HTTP, HTTPS, TCP and UDP.

**Which balancing algorithms are available?**
Round robin, least connections, and source IP.

**What health check types are supported?**
HTTP, HTTPS, TCP and PING.

**Can I use a public IP that stays with my project?**
Yes. Keep the VIP on a private subnet and attach a floating IP at create time — either newly allocated from an external network, or one your project already owns. The floating IP is not released when the load balancer is deleted.

**Can I change the floating IP of an existing load balancer?**
The floating IP is chosen when the load balancer is created. While the load balancer exists, its floating IP is locked to it and cannot be re-assigned to an instance or released from the floating IPs page.

**Do listeners and pools cost extra?**
No. The flat hourly load balancer rate covers its listeners and pools.

## Related

- [VPC networks and subnets](/help/vpc-networks-subnets)
- [Floating IPs](/help/floating-ips-allocation)