Manage pools
Within Cloudflare, pools represent your endpoints and how they are organized. As such, a pool can be a group of several endpoints, or you could also have only one endpoint (an origin server, for example) per pool.
If you are familiar with DNS terminology, think of a pool as a “record set,” except Cloudflare only returns addresses that are considered healthy. You can attach health monitors to individual pools for customized monitoring.
For more background information on pools, refer to Pools.
Create a pool
You can create a pool within the load balancer workflow or in the Pools section of the dashboard:
Go to Traffic > Load Balancing.
Select Manage Pools and then Create.
For your pool, enter the following information:
- A name (must be unique)
- A description to provide more detail on the name
- A choice for Endpoint Steering, which affects how your pool routes traffic to each endpoint
For each endpoint, enter the following information:
- A name (must be unique)
- The endpoint address or associated hostname
- (Optional) A Virtual Network. Required when the endpoint has a private IP address.
- A Weight
- (Optional) A hostname by clicking Add host header
Repeat this process for additional endpoints in the pool.
(Optional) Set up coordinates for Proximity Steering on the pool.
On the pool, update the following information:
- Health Threshold: The Health Threshold is the number of healthy endpoints for the pool as a whole to be considered Healthy and receive traffic based on pool order in a load balancer. Increasing this number makes the pool more reliable, but also more likely to become unhealthy.
- Monitor: Attach a monitor
- Health Monitor Regions: Choose whether to check pool health from multiple locations, which increases accuracy but can lead to probe traffic to your endpoint
- Pool Notifications: You can set up new alerts - and view existing alerts - to be notified when pools are enabled or disabled, or pools or endpoints have changes in their health status.
When finished, select Save.
For a full list of properties, refer to Create Pool. If you need help with API authentication, refer to Cloudflare API documentation.
Requestcurl "https://api.cloudflare.com/client/v4/accounts/{account_id}/load_balancers/pools" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{ "description": "Primary data center - Provider XYZ", "name": "primary-dc-1", "enabled": false, "load_shedding": { "default_percent": 0, "default_policy": "random", "session_percent": 0, "session_policy": "hash" }, "minimum_origins": 2, "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc", "check_regions": [ "WEU", "ENAM" ], "origins": [ { "name": "app-server-1", "address": "0.0.0.0", "enabled": true, "weight": 0.56, "header": { "Host": [ "example.com" ] } } ], "origin_steering": { "policy": "random" }, "notification_filter": { "origin": { "disable": false, "healthy": null }, "pool": { "disable": false, "healthy": null } }}'
The response contains the complete definition of the new pool.
Response{ "success": true, "errors": [], "messages": [], "result": { "id": "17b5962d775c646f3f9725cbc7a53df4", "created_on": "2021-01-01T05:20:00.12345Z", "modified_on": "2021-01-01T05:20:00.12345Z", "description": "Primary data center - Provider XYZ", "name": "primary-dc-1", "enabled": false, "load_shedding": { "default_percent": 0, "default_policy": "random", "session_percent": 0, "session_policy": "hash" }, "minimum_origins": 2, "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc", "check_regions": [ "WEU", "ENAM" ], "origins": [ { "name": "app-server-1", "address": "0.0.0.0", "enabled": true, "weight": 0.56, "header": { "Host": [ "example.com" ] } } ], "origin_steering": { "policy": "random" }, "notification_filter": { "origin": { "disable": false, "healthy": null }, "pool": { "disable": false, "healthy": null } } }
}
After creating the pool, you would also want to create a new notification with the following parameters specified:
"alert_type": "load_balancing_health_alert",
"filters": { "pool_id": <<ARRAY_OF_INCLUDED_POOL_IDS>>, "new_health": <<ARRAY_OF_STATUS_TRIGGERS>> ["Unhealthy", "Healthy"], "event_source": <<ARRAY_OF_OBJECTS_WATCHED>> ["pool", "origin"]
}
Edit a pool
To edit a pool in the dashboard:
- Go to Traffic > Load Balancing.
- Click Manage Pools.
- On a specific pool, click Edit.
- Update settings as needed.
- Click Save.
Delete a pool
You cannot delete pools that are in use by load balancers. This includes geo steering regions pools as well as fallback pools.
If you get an error when trying to delete a pool, consider the hostnames listed in the error and edit the respective load balancers, making sure to remove all references to the pool.
To delete a pool in the dashboard:
- Go to Traffic > Load Balancing.
- Click Manage Pools.
- On a specific pool, click Delete.
Set up alerts
You can configure alerts to receive notifications for changes in the status of your pools. Who is it for? Customers who want to be warned about status changes (enabled/disabled) in their pools. Other options / filters Available filters include: Included with Purchase of Load Balancing. What should you do if you receive one? No action is needed. Who is it for? Customers who want to be warned about changes in health status in their pools or origins. Other options / filters Available filters include: Included with Purchase of Load Balancing. What should you do if you receive one? Evaluate load balancing analytics to review changes in health status over time.Pool Enablement
Load Balancing Health Alert