Chuyển tới nội dung chính

Tạo load balancer

POST/v2/lbaas/loadbalancers

Tạ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.

Request​

Tham số​

loadbalancerobjectbắt buộc

Object bọc load balancer.

12 trường
namestringbody

Tên dễ đọc.

descriptionstringbody

Mô tả tự do.

vip_subnet_idstringbody

Subnet cho VIP. Bắt buộc một trong vip_subnet_id, vip_network_id hoặc vip_port_id.

vip_network_idstringbody

Network cho VIP. Bắt buộc một trong ba field VIP.

vip_port_idstringbody

Port 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_versionintegerbody

4 hoặc 6. Mặc định: 4.

2 giá trị
  • 4 VIP IPv4.
  • 6 VIP IPv6.
providerstringbody

Driver provider. Mặc định: octavia.

flavor_idstringbody

ID load balancer flavor, nếu project của bạn có.

admin_state_upbooleanbody

Trạng thái quản trị. Mặc định: true.

tagsarraybody

Các tag trên tài nguyên.

listenersarraybody

Các listener cần tạo cùng load balancer.

4 trường
namestringbody

Tên listener.

protocolstringbắt buộcbody

HTTP, HTTPS, TCP, UDP và các giá trị tương tự.

4 giá trị
  • HTTP Lưu lượng HTTP.
  • HTTPS HTTP qua TLS.
  • TCP TCP passthrough, không kiểm tra payload.
  • UDP Datagram UDP.
protocol_portintegerbắt buộcbody

Port mà listener nhận lưu lượng.

default_poolobjectbody

Pool cần tạo và gắn làm default pool của listener.

5 trường
namestringbody

Tên pool.

protocolstringbắt buộcbody

Giao thức của pool, ví dụ HTTP.

4 giá trị
  • HTTP Các member của pool dùng HTTP.
  • HTTPS Các member của pool dùng HTTPS.
  • TCP TCP passthrough tới member.
  • UDP UDP tới member.
lb_algorithmstringbody

ROUND_ROBIN, LEAST_CONNECTIONS hoặc SOURCE_IP.

3 giá trị
  • ROUND_ROBIN Phân phối kết nối mới đều cho các member.
  • LEAST_CONNECTIONS Gửi kết nối mới tới member có ít kết nối active nhất.
  • SOURCE_IP Hash địa chỉ nguồn để chọn member, nhờ đó client luôn dùng cùng một member.
healthmonitorobjectbody

Health monitor cho pool.

4 trường
typestringbắt buộcbody

HTTP, HTTPS, TCP, PING và các giá trị tương tự.

4 giá trị
  • HTTP Gửi request HTTP và mong đợi response thành công.
  • HTTPS Gửi request HTTPS và mong đợi response thành công.
  • TCP Kiểm tra member có chấp nhận kết nối TCP hay không.
  • PING Gửi ICMP echo request.
delayintegerbắt buộcbody

Số giây giữa các lần kiểm tra.

timeoutintegerbắt buộcbody

Số giây trước khi một lần kiểm tra timeout.

max_retriesintegerbắt buộcbody

Số lần kiểm tra thất bại trước khi member bị đánh dấu down.

membersarraybody

Các member backend.

2 trường
addressstringbắt buộcbody

Địa chỉ IP của member.

protocol_portintegerbắt buộcbody

Port 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 - CreatedLoad balancer đã được tạo và bắt đầu provisioning.

Lỗi​

MãMô tả
400 - Bad RequestMột số nội dung trong request không hợp lệ, ví dụ thiếu trường VIP.
401 - UnauthorizedCần xác thực trước khi gửi request.
403 - ForbiddenPolicy không cho phép user hiện tại thực hiện thao tác này.
404 - Not FoundSubnet, network hoặc port không tồn tại.
500 - Internal Server ErrorService xử lý request thất bại.
503 - Service UnavailableDịch vụ cân bằng tải không khả dụng.
note

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).