Tạo load balancer
/v2/lbaas/loadbalancersTạo load balancer, và tuỳ chọn tạo luôn listener, pool, health monitor và member trong cùng request. Load balancer được provisioning bất đồng bộ: API trả về PENDING_CREATE và sẵn sàng sử dụng khi trạng thái đạt ACTIVE.
Nguồn: create-a-load-balancer
Request
Tham số
loadbalancerobjectbắt buộcObject bọc load balancer.
12 trường
namestringbodyTên dễ đọc.
descriptionstringbodyMô tả tự do.
vip_subnet_idstringbodySubnet cho VIP. Bắt buộc một trong vip_subnet_id, vip_network_id hoặc vip_port_id.
vip_network_idstringbodyNetwork cho VIP. Bắt buộc một trong ba field VIP.
vip_port_idstringbodyPort có sẵn cho VIP. Bắt buộc một trong ba field VIP.
vip_addressstringbodyĐịa chỉ IP cụ thể cho VIP.
vip_ip_versionintegerbody4 hoặc 6. Mặc định: 4.
2 giá trị
4VIP IPv4.6VIP IPv6.
providerstringbodyDriver provider. Mặc định: octavia.
flavor_idstringbodyID load balancer flavor, nếu project của bạn có.
admin_state_upbooleanbodyTrạng thái quản trị. Mặc định: true.
tagsarraybodyCác tag trên tài nguyên.
listenersarraybodyCác listener cần tạo cùng load balancer.
4 trường
namestringbodyTên listener.
protocolstringbắt buộcbodyHTTP, HTTPS, TCP, UDP và các giá trị tương tự.
4 giá trị
HTTPLưu lượng HTTP.HTTPSHTTP qua TLS.TCPTCP passthrough, không kiểm tra payload.UDPDatagram UDP.
protocol_portintegerbắt buộcbodyPort mà listener nhận lưu lượng.
default_poolobjectbodyPool cần tạo và gắn làm default pool của listener.
5 trường
namestringbodyTên pool.
protocolstringbắt buộcbodyGiao thức của pool, ví dụ HTTP.
4 giá trị
HTTPCác member của pool dùng HTTP.HTTPSCác member của pool dùng HTTPS.TCPTCP passthrough tới member.UDPUDP tới member.
lb_algorithmstringbodyROUND_ROBIN, LEAST_CONNECTIONS hoặc SOURCE_IP.
3 giá trị
ROUND_ROBINPhân phối kết nối mới đều cho các member.LEAST_CONNECTIONSGửi kết nối mới tới member có ít kết nối active nhất.SOURCE_IPHash địa chỉ nguồn để chọn member, nhờ đó client luôn dùng cùng một member.
healthmonitorobjectbodyHealth monitor cho pool.
4 trường
typestringbắt buộcbodyHTTP, HTTPS, TCP, PING và các giá trị tương tự.
4 giá trị
HTTPGửi request HTTP và mong đợi response thành công.HTTPSGửi request HTTPS và mong đợi response thành công.TCPKiểm tra member có chấp nhận kết nối TCP hay không.PINGGửi ICMP echo request.
delayintegerbắt buộcbodySố giây giữa các lần kiểm tra.
timeoutintegerbắt buộcbodySố giây trước khi một lần kiểm tra timeout.
max_retriesintegerbắt buộcbodySố lần kiểm tra thất bại trước khi member bị đánh dấu down.
membersarraybodyCác member backend.
2 trường
addressstringbắt buộcbodyĐịa chỉ IP của member.
protocol_portintegerbắt buộcbodyPort của member.
Request mẫu
curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' -d '{
"loadbalancer": {
"name": "lb2",
"vip_subnet_id": "fd2de462-f93b-43a6-9b5c-254f1e690bf1",
"listeners": [
{
"name": "http_listener",
"protocol": "HTTP",
"protocol_port": 80,
"default_pool": {
"name": "rr_pool",
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"healthmonitor": {
"type": "HTTP",
"delay": 3,
"timeout": 1,
"max_retries": 2
},
"members": [
{"address": "192.168.10.245", "protocol_port": 80},
{"address": "192.168.10.168", "protocol_port": 80}
]
}
}
]
}
}' https://api.vietnix.cloud:9888/v2/lbaas/loadbalancers
Response
Response mẫu
Response body
{
"loadbalancer": {
"id": "3f2a1b9c-6d4e-4f70-8a11-2c3d4e5f6a70",
"name": "lb2",
"provisioning_status": "PENDING_CREATE",
"operating_status": "OFFLINE",
"provider": "amphora",
"vip_address": "192.168.10.5",
"vip_subnet_id": "fd2de462-f93b-43a6-9b5c-254f1e690bf1",
"vip_network_id": "15f7dc0a-712c-422f-bfd3-31dc351d9026",
"vip_port_id": "fb0e8e3e-2a71-420a-885c-94f6d2c2f2b7",
"listeners": [
{"id": "1dc8539c-7545-4ae8-8081-3140a47b6342"}
],
"pools": [
{"id": "bd04cc50-0575-45cc-a965-514357a4b62d"}
],
"admin_state_up": true,
"tags": []
}
}
Mã trạng thái
Thành công
| Mã | Mô tả |
|---|---|
| 201 - Created | Load balancer đã được tạo và bắt đầu provisioning. |
Lỗi
| Mã | Mô tả |
|---|---|
| 400 - Bad Request | Một số nội dung trong request không hợp lệ, ví dụ thiếu trường VIP. |
| 401 - Unauthorized | Cần xác thực trước khi gửi request. |
| 403 - Forbidden | Policy không cho phép user hiện tại thực hiện thao tác này. |
| 404 - Not Found | Subnet, network hoặc port không tồn tại. |
| 500 - Internal Server Error | Service xử lý request thất bại. |
| 503 - Service Unavailable | Dịch vụ cân bằng tải không khả dụng. |
VIP là địa chỉ private. Để công bố dịch vụ, hãy tạo floating IP và gắn với vip_port_id (xem Cập nhật floating IP).