创建负载均衡器
功能介绍
创建私网类型的负载均衡器。创建成功后,该接口会返回创建的负载均衡器的ID、所属子网ID、负载均衡器内网IP等详细信息。
若要创建公网类型的负载均衡器,还需调用创建弹性公网IP的接口,将弹性公网IP与私网负载均衡器的vip_port_id绑定。
URI
POST /v2.0/lbaas/loadbalancers
请求消息
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
loadbalancer |
是 |
Object |
负载均衡器对象。详见表2。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
负载均衡器名称。 支持的最大字符长度:255 |
description |
否 |
String |
负载均衡器的描述信息。 支持的最大字符长度:255 |
tenant_id |
否 |
String |
负载均衡器所在的项目ID。 支持的最大字符长度:255 需要和token中的project_id一致。 |
project_id |
否 |
String |
此参数和tenant_id参数含义一样,均指负载均衡器所在的项目ID。 需要和token中的project_id一致。 |
vip_subnet_id |
是 |
String |
负载均衡器所在的子网IPv4子网ID。可通过查询子网列表接口GET {vpc的endpoint}/v2.0/subnets获取。 vip_address将从该子网中产生。 只支持指定IPv4的子网ID。暂不支持IPv6。 |
provider |
否 |
String |
负载均衡器的生产者。 取值范围:vlb。 |
vip_address |
否 |
String |
负载均衡器的内网IP。 该IP必须为vip_subnet_id字段指定的子网网段中的IP。若不指定,自动从vip_subnet_id字段指定的子网网段中生成一个IP地址。 支持的最大字符长度:64 |
admin_state_up |
否 |
Boolean |
负载均衡器的管理状态。 该字段为预留字段,暂未启用。默认为true。 |
响应消息
参数 |
参数类型 |
描述 |
---|---|---|
loadbalancer |
Object |
负载均衡器对象。详见表4。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
负载均衡器ID。 |
project_id |
String |
此参数和tenant_id参数含义一样,均指负载均衡器所在的项目ID。 |
tenant_id |
String |
负载均衡器所在项目的ID。 支持的最大字符长度:255 |
name |
String |
负载均衡器名称。 支持的最大字符长度:255 |
description |
String |
负载均衡器的描述信息。 支持的最大字符长度:255 |
vip_subnet_id |
String |
负载均衡器所在子网IPv4子网ID。 |
vip_port_id |
String |
负载均衡器内网IP对应的端口ID。 创建弹性负载均衡时,会自动为负载均衡创建一个port并关联一个默认的安全组,这个安全组对所有流量不生效。 |
provider |
String |
负载均衡器的生产者名称。 |
vip_address |
String |
负载均衡器的内网IP。 支持的最大字符长度:64 |
listeners |
Array |
负载均衡器关联监听器ID的列表。详见表5 |
pools |
Array |
负载均衡器关联后端服务器组ID的列表。详见表6 |
operating_status |
String |
负载均衡器的操作状态。取值范围:可以为ONLINE和FROZEN。 |
provisioning_status |
String |
该字段为预留字段,暂未启用。 负载均衡器的配置状态。取值范围:可以为ACTIVE。 |
admin_state_up |
Boolean |
负载均衡器的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。
|
tags |
Array |
负载均衡器的标签列表。 |
created_at |
String |
负载均衡器的创建时间。 格式为UTC时间:YYYY-MM-DDTHH:MM:SS 支持的最大字符长度:19 |
updated_at |
String |
负载均衡器的更新时间。 格式为UTC时间:YYYY-MM-DDTHH:MM:SS 支持的最大字符长度:19 |
请求示例
- 请求样例1 创建私网负载均衡器
POST https://{Endpoint}/v2.0/lbaas/loadbalancers { "loadbalancer": { "name": "loadbalancer1", "description": "simple lb", "tenant_id": "1867112d054b427e808cc6096d8193a1", "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", "vip_address": "192.168.0.100", "admin_state_up": true } }
- 请求样例2
在 请求样例1 创建私网负载均衡器的基础上,为私网负载均衡器的vip_port绑定弹性公网IP,具体参数说明参考表7。
表7 请求参数说明 参数
是否必选
参数类型
描述
publicip
是
Object
弹性公网IP对象,请参见表8。
bandwidth
是
Object
带宽对象,请参见表9。
enterprise_project_id
否
String
- 企业项目ID。最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。
- 创建弹性公网IP时,给弹性公网IP绑定企业项目ID。
- 不指定该参数时,默认值是 0
说明:关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。
表8 publicip参数说明 参数
是否必选
参数类型
描述
type
是
String
- 功能说明:弹性公网IP的类型
- 取值范围:5_telcom,5_union,5_bgp,5_sbgp
- 华南-广州:5_bgp、5_sbgp
- 华东-上海二:5_bgp、5_sbgp
- 华北-北京一:5_bgp、5_sbgp
- 中国-香港:5_bgp
- 西南-贵阳一:5_bgp、5_sbgp
- 华北-北京四:5_bgp、5_sbgp
- 约束:
- 必须是系统具体支持的类型
- publicip_id为IPv4端口,所以"publicip_type"字段未给定时,默认为5_bgp。
ip_version
否
Integer
- 功能说明:弹性公网IP的版本
- 取值范围:4、6,分别表示创建ipv4和ipv6
- 约束:
- 必须是系统具体支持的类型
- 不填或空字符串时,默认创建ipv4
ip_address
否
String
- 功能说明:希望申请到的弹性公网IP的地址,不指定时由系统自动分配
- 约束:必须为IPv4地址格式,且必须在可用地址池范围内
表9 bandwidth字段说明 参数
是否必选
参数类型
描述
name
否
String
- 功能说明:带宽名称
- 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)
- 如果share_type是PER,该参数必须带,如果share_type是WHOLE并且id有值,该参数会忽略。
size
否
Integer
- 功能说明:带宽大小
- 取值范围:默认1Mbit/s~300Mbit/s(具体范围以各区域配置为准,请参见控制台对应页面显示)。
- 约束:share_type是PER,该参数必须带,如果share_type是WHOLE并且id有值,该参数会忽略。
- 注意:调整带宽时的最小单位会根据带宽范围不同存在差异。
- 小于等于300Mbit/s:默认最小单位为1Mbit/s。
- 300Mbit/s~1000Mbit/s:默认最小单位为50Mbit/s。
- 大于1000Mbit/s:默认最小单位为500Mbit/s。
id
否
String
- 功能说明:带宽ID,创建弹性公网IP时可以指定已有的共享带宽
- 取值范围:共享(WHOLE类型)带宽ID
share_type
是
String
- 功能说明:带宽类型
- 取值范围:
- PER:独享带宽
- WHOLE:共享带宽
charge_mode
否
String
- 取值默认为traffic。当前仅支持按照流量计费。
- step1 请求样例 申请弹性公网IP。
POST https://{VPCEndpoint}/v1/8b7e35ad379141fc9df3e178bd64f55c/publicips { "publicip": { "type": "5_bgp", "ip_version": 4 }, "bandwidth": { "name": "bandwidth123", "size": 10, "share_type": "PER" } }
- step1 响应样例
{ "publicip": { "id": "f588ccfa-8750-4d7c-bf5d-2ede24414706", "status": "PENDING_CREATE", "type": "5_bgp", "public_ip_address": "139.9.204.183", "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c", "ip_version": 4, "create_time": "2019-06-29 06:45:32", "bandwidth_size": 1 } }
- step2 请求样例 绑定弹性公网IP,public_id为▪step1 响应样例中的publicip id,port_id为 响应样例1的vip_port_id。
PUT /v1/8b7e35ad379141fc9df3e178bd64f55c/publicips/f588ccfa-8750-4d7c-bf5d-2ede24414706 { "publicip": { "port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7" } }
- step2 响应样例
{ "publicip": { "id": "f588ccfa-8750-4d7c-bf5d-2ede24414706", "status": "ACTIVE", "type": "5_bgp", "port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7", "public_ip_address": "139.9.204.183", "private_ip_address": "192.168.1.131", "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c", "create_time": "2019-06-29 07:33:18", "bandwidth_size": 1, "ip_version": 4 } }
- 完成以上步骤,负载均衡器已具备公网访问的能力,可通过响应体中的public_ip_address:139.9.204.183来访问负载均衡器。
响应示例
- 响应样例1
{ "loadbalancer": { "description": "simple lb", "provisioning_status": "ACTIVE", "tenant_id": "1867112d054b427e808cc6096d8193a1", "project_id": "1867112d054b427e808cc6096d8193a1", "created_at": "2019-01-19T05:32:56", "admin_state_up": true, "updated_at": "2019-01-19T05:32:57", "id": "ea2843da-4026-49ec-8338-8fa015b067fc", "pools": [], "listeners": [], "vip_port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7", "operating_status": "ONLINE", "vip_address": "192.168.0.100", "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", "provider": "vlb", "tags": [], "name": "loadbalancer1" } }
- 响应样例 2
POST https://{Endpoint}/v2.0/lbaas/loadbalancers { "loadbalancer": { "name": "loadbalancer1", "description": "simple lb", "tenant_id": "1867112d054b427e808cc6096d8193a1", "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", "vip_address": "192.168.0.100", "admin_state_up": true } }
完成以上步骤,负载均衡器已具备公网访问的能力,可通过响应体中的public_ip_address:139.9.204.183来访问负载均衡器。
返回码
请参见状态码。