Create pools
2 min read
Instead of starting on your production domain, you likely should create a load balancer on a test or staging domain. This may involve temporary changes to your monitors and pools, depending on your infrastructure setup.
Starting with a test domain allows you to verify everything is working correctly before routing production traffic.
You can create a pool within the load balancer workflow or in the Origin Pools section of the dashboard:
- Go to Traffic > Load Balancing. 
- Click Manage Pools. 
- Click 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 Origin Steering, which affects how your pool routes traffic to each origin
 
- For each origin, enter the following information: 
- Repeat this process for additional origins in the pool. 
- (Optional) Set up coordinates for Proximity Steering on the pool. 
- On the origin pool, update the following information: - Health Threshold: The Health Threshold is the number of healthy origins 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 Check Regions: Choose whether to check pool health from multiple locations, which increases accuracy but can lead to probe traffic to your origin
- Pool Notifications: You can set up new alerts - and view existing alerts - to be notified when pools are enabled or disabled, or pools or origins have changes in their health status.
 
- When finished, click Save. 
For a full list of properties, refer to Create Pool. If you need help with API authentication, refer to Cloudflare API documentation.
Requestcurl -X POST \-H "X-Auth-Email: user@cloudflare.com" \-H "X-Auth-Key: REDACTED" \"https://api.cloudflare.com/client/v4/accounts/:account_id/load-balancers/pools" \-H "Content-Type: application/json" \-d '{    "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"]
}
Unit 3 of 8