资源池
列举资源池
功能介绍
查询资源池列表。
URI
GET /v2.0/lbaas/pools
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
fields | string | 否 | 你想让服务器返回的字段。如果没有指定字段的查询参数,API会返回所有资源池的属性。通过使用fields 参数,API只返回请求的属性集。可以指定多个字段的参数。例如,如果您指定fields=id&fields=name 的请求URL,那么只有id 和name 属性将返回。 |
project_id | string | 否 | 指定项目ID进行查询。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
admin_state_up | boolean | 资源池的管理状态,true表示启用,false表示停用。 |
alpn_protocols | array | ALPN协议列表。取值为:http/1.0、http/1.1或h2。 此字段暂不支持产品化配置,请勿使用。 |
ca_tls_container_ref | string | 资源池使用的CA证书ID。对证书管理服务中秘钥的引用。 此字段暂不支持产品化配置,请勿使用。 |
created_at | string | 资源池创建的时间。 |
crl_container_ref | string | 资源池使用的CA证书吊销列表ID。证书管理服务中秘钥的URI。 此字段暂不支持产品化配置,请勿使用。 |
description | string | 资源池的描述信息。 |
healthmonitor_id | uuid | 资源池关联的健康检查器ID。 |
id | uuid | 资源池的ID。 |
lb_algorithm | string | 资源池的负载均衡算法。取值为: 1、ROUND_ROBIN:加权轮询算法。 2、LEAST_CONNECTIONS:加权最少连接算法。 3、SOURCE_IP:源IP算法。 |
listeners | array | 资源池关联的监听器ID列表。 |
loadbalancers | array | 资源池关联的负载均衡器ID列表。 |
members | array | 资源池关联的成员ID列表。 |
name | string | 资源池的名称。 |
operating_status | string | 资源池的运行状态。 |
project_id | string | 资源池所属的项目ID。 |
protocol | string | 资源池的协议。取值为:TCP、UDP、HTTP、PROXY 。 |
provisioning_status | string | 资源池的配置状态。 |
session_persistence | object | 资源池的会话持久化对象。 |
tags | list | 标签。 |
tls_ciphers | string | OpenSSL格式的密码列表(以冒号分隔)。 |
tls_container_ref | string | 关联的包含PKCS12格式证书/密钥的证书服务机密。用于对后端服务器成员进行TLS客户端身份验证。 |
tls_enabled | boolean | 是否启用TLS加密。默认为false。 |
tls_versions | array | TLS协议的版本列表,取值为:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。。 |
updated_at | string | 资源池最后一次更新的时间。 |
请求示例
curl -X GET -H "X-Auth-Token: <token>" http://octavia-api.octavia.svc.cluster.local:9876/v2.0/lbaas/pools
正常响应示例
{
"pools": [
{
"id": "b2707975-5689-476b-b4d0-4935b2b03216",
"name": "pool_2",
"description": "",
"provisioning_status": "ACTIVE",
"operating_status": "ONLINE",
"admin_state_up": true,
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"session_persistence": null,
"project_id": "58f3846f80724e33a4b45bb4349a177b",
"loadbalancers": [
{
"id": "2e818efd-eeaf-4632-ab48-1529feb30959"
}
],
"listeners": [
{
"id": "74224f2a-6e48-4b42-b2a9-839b0d11f020"
}
],
"l7policies": [
{
"id": "b3d55c20-cf58-41cf-a02a-bb99990a0b9d"
}
],
"created_at": "2022-04-22T03:30:24",
"updated_at": "2022-04-22T06:09:51",
"members": [
{
"id": "068a9f4e-307e-4e82-bdf3-0fc28cd9f1b9"
}
],
"tags": [],
"tls_container_ref": null,
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": null,
"tls_versions": null,
"alpn_protocols": null,
"tenant_id": "58f3846f80724e33a4b45bb4349a177b"
},
{
"id": "f6ac4a11-ccff-4ee4-a94d-50d80d270603",
"name": "demo-pool",
"description": "",
"provisioning_status": "ACTIVE",
"operating_status": "ONLINE",
"admin_state_up": true,
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"session_persistence": null,
"project_id": "250a86f0dcc9467285fa8af54457e885",
"loadbalancers": [
{
"id": "0b7c5ec8-1f96-49d3-b2b1-7f68ba3aa03f"
}
],
"listeners": [
{
"id": "75944c16-b8ee-4d6c-9502-4dba6e32e8cc"
}
],
"l7policies": [],
"created_at": "2022-04-25T06:28:44",
"updated_at": "2022-04-25T06:28:56",
"healthmonitor_id": "2835236d-d006-410b-a75c-e88e9bdb73f6",
"members": [],
"tags": [],
"tls_container_ref": null,
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": null,
"tls_versions": null,
"alpn_protocols": null,
"tenant_id": "250a86f0dcc9467285fa8af54457e885"
}
],
"pools_links": []
}
正常响应代码
200
错误码
400,401,500
创建资源池
功能介绍
创建一个资源池。
URI
POST /v2.0/lbaas/pools
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
admin_state_up | boolean | 否 | 资源池的管理状态,true表示启用,false表示停用。 |
alpn_protocols | array | 否 | ALPN协议列表。取值为:http/1.0、http/1.1或h2。 此字段暂不支持产品化配置,请勿使用。 |
ca_tls_container_ref | string | 否 | 资源池使用的CA证书ID。对证书管理服务中秘钥的引用。 此字段暂不支持产品化配置,请勿使用。 |
crl_container_ref | string | 否 | 资源池使用的CA证书吊销列表ID。证书管理服务中秘钥的URI。 此字段暂不支持产品化配置,请勿使用。 |
description | string | 否 | 资源池的描述信息。 |
lb_algorithm | string | 是 | 资源池的负载均衡算法。取值为: 1、ROUND_ROBIN:加权轮询算法。 2、LEAST_CONNECTIONS:加权最少连接算法。 3、SOURCE_IP:源IP算法。 |
listener_id | uuid | 否 | 资源池所属监听器的ID。创建资源池时须指定listener或loadbalancer。 |
loadbalancer_id | uuid | 否 | 资源池所属负载均衡器的ID。创建资源池时须指定listener或loadbalancer。 |
name | string | 否 | 资源池的名称。 |
project_id | string | 否 | 资源池所属的项目ID。 |
protocol | string | 是 | 资源池的协议。取值为:TCP、UDP、HTTP、PROXY 。 |
session_persistence | object | 否 | 资源池的会话持久化对象。 |
tags | list | 否 | 标签。 |
tls_enabled | boolean | 否 | 是否启用TLS加密。默认为false。 |
tls_ciphers | string | 否 | OpenSSL格式的密码列表(以冒号分隔)。 |
tls_container_ref | string | 否 | 关联的包含PKCS12格式证书/密钥的证书服务机密。用于对后端服务器成员进行TLS客户端身份验证。 |
tls_versions | array | 否 | TLS协议的版本列表,取值为:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。。 |
Octavia 目前支持三种会话持久化方法:
方法 | 描述 |
---|---|
APP_COOKIE | 使用指定的cookie_name向同一个成员发送将来的请求。 |
HTTP_COOKIE | 负载均衡器将生成一个插入响应的cookie。此cookie将用于向同一成员发送将来的请求。 |
SOURCE_IP | 请求上的源IP地址将被散列以将之后的请求发送给同一成员。 |
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
type | string | 是 | 资源池的会话持久话类型。取值为:APP_COOKIE、HTTP_COOKIE、SOURCE_IP。 |
cookie_name | string | 否 | 用于会话持久话的cookie的名称。只适用于需要的APP_COOKIE会话持久化类型。 |
persistence_timeout | integer | 否 | 超时时间(以秒为单位),在此之后,UDP流可能会被重新调度到不同的成员。目前仅适用于具有SOURCE_IP会话持久话的UDP资源池。默认为360。 |
persistence_granularity | string | 否 | 用于确定UDP会话持久话的网络掩码。目前仅对具有SOURCE_IP会话持久话的UDP池有效。默认网络掩码为255.255.255.255,表示每个客户端的完整 IP。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
admin_state_up | boolean | 资源池的管理状态,true表示启用,false表示停用。 |
alpn_protocols | array | ALPN协议列表。取值为:http/1.0、http/1.1或h2。 此字段暂不支持产品化配置,请勿使用。 |
ca_tls_container_ref | string | 资源池使用的CA证书ID。对证书管理服务中秘钥的引用。 此字段暂不支持产品化配置,请勿使用。 |
created_at | string | 资源池创建的时间。 |
crl_container_ref | string | 资源池使用的CA证书吊销列表ID。证书管理服务中秘钥的URI。 此字段暂不支持产品化配置,请勿使用。 |
description | string | 资源池的描述信息。 |
healthmonitor_id | uuid | 资源池关联的健康检查器ID。 |
id | uuid | 资源池的ID。 |
lb_algorithm | string | 资源池的负载均衡算法。取值为: 1、ROUND_ROBIN:加权轮询算法。 2、LEAST_CONNECTIONS:加权最少连接算法。 3、SOURCE_IP:源IP算法。 |
listeners | array | 资源池关联的监听器ID列表。 |
loadbalancers | array | 资源池关联的负载均衡器ID列表。 |
members | array | 资源池关联的成员ID列表。 |
name | string | 资源池的名称。 |
operating_status | string | 资源池的运行状态。 |
project_id | string | 资源池所属的项目ID。 |
protocol | string | 资源池的协议。取值为:TCP、UDP、HTTP、PROXY 。 |
provisioning_status | string | 资源池的配置状态。 |
session_persistence | object | 资源池的会话持久化对象。 |
tags | list | 标签。 |
tls_enabled | boolean | 是否启用TLS加密。默认为false。 |
tls_ciphers | string | OpenSSL格式的密码列表(以冒号分隔)。 |
tls_container_ref | string | 关联的包含PKCS12格式证书/密钥的证书服务机密。用于对后端服务器成员进行TLS客户端身份验证。 |
tls_versions | array | TLS协议的版本列表,取值为:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。。 |
updated_at | string | 资源池最后一次更新的时间。 |
请求示例
curl -X POST -H "X-Auth-Token: <token>" -d '{"pool": {"name": "demo-pool", "description": "demo pool create test.", "protocol": "HTTP", "loadbalancer_id": "0b7c5ec8-1f96-49d3-b2b1-7f68ba3aa03f", "lb_algorithm": "ROUND_ROBIN", "admin_state_up": true}}' http://octavia-api.octavia.svc.cluster.local:9876/v2.0/lbaas/pools
{
"pool": {
"name": "demo-pool",
"description": "demo pool create test.",
"protocol": "HTTP",
"loadbalancer_id": "0b7c5ec8-1f96-49d3-b2b1-7f68ba3aa03f",
"lb_algorithm": "ROUND_ROBIN",
"admin_state_up": true
}
}
正常响应示例
{
"pool": {
"id": "a0a1d410-dc82-4640-a8bd-08f7206fa45f",
"name": "demo-pool",
"description": "demo pool create test.",
"provisioning_status": "PENDING_CREATE",
"operating_status": "OFFLINE",
"admin_state_up": true,
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"session_persistence": null,
"project_id": "250a86f0dcc9467285fa8af54457e885",
"loadbalancers": [
{
"id": "0b7c5ec8-1f96-49d3-b2b1-7f68ba3aa03f"
}
],
"listeners": [],
"l7policies": [],
"created_at": "2022-04-25T06:49:40",
"updated_at": null,
"members": [],
"tags": [],
"tls_container_ref": null,
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": null,
"tls_versions": null,
"alpn_protocols": null,
"tenant_id": "250a86f0dcc9467285fa8af54457e885"
}
}
正常响应代码
201
错误码
400,401,403,404,409,500,503
查询资源池详情
功能介绍
查询资源池的详细信息。
URI
GET /v2.0/lbaas/pools/{pool_id}
参数 | 是否必选 | 描述 |
---|---|---|
pool_id | 是 | 待查询的资源池的ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
fields | string | 否 | 你想让服务器返回的字段。如果没有指定字段的查询参数,API会返回所有资源池的属性。通过使用fields 参数,API只返回请求的属性集。可以指定多个字段的参数。例如,如果您指定fields=id&fields=name 的请求URL,那么只有id 和name 属性将返回。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
admin_state_up | boolean | 资源池的管理状态,true表示启用,false表示停用。 |
alpn_protocols | array | ALPN协议列表。取值为:http/1.0、http/1.1或h2。 此字段暂不支持产品化配置,请勿使用。 |
ca_tls_container_ref | string | 资源池使用的CA证书ID。对证书管理服务中秘钥的引用。 此字段暂不支持产品化配置,请勿使用。 |
created_at | string | 资源池创建的时间。 |
crl_container_ref | string | 资源池使用的CA证书吊销列表ID。证书管理服务中秘钥的URI。 此字段暂不支持产品化配置,请勿使用。 |
description | string | 资源池的描述信息。 |
healthmonitor_id | uuid | 资源池关联的健康检查器ID。 |
id | uuid | 资源池的ID。 |
lb_algorithm | string | 资源池的负载均衡算法。取值为: 1、ROUND_ROBIN:加权轮询算法。 2、LEAST_CONNECTIONS:加权最少连接算法。 3、SOURCE_IP:源IP算法。 |
listeners | array | 资源池关联的监听器ID列表。 |
loadbalancers | array | 资源池关联的负载均衡器ID列表。 |
members | array | 资源池关联的成员ID列表。 |
name | string | 资源池的名称。 |
operating_status | string | 资源池的运行状态。 |
project_id | string | 资源池所属的项目ID。 |
protocol | string | 资源池的协议。取值为:TCP、UDP、HTTP、PROXY 。 |
provisioning_status | string | 资源池的配置状态。 |
session_persistence | object | 资源池的会话持久化对象。 |
tags | list | 标签。 |
tls_enabled | boolean | 是否启用TLS加密。默认为false。 |
tls_ciphers | string | OpenSSL格式的密码列表(以冒号分隔)。 |
tls_container_ref | string | 关联的包含PKCS12格式证书/密钥的证书服务机密。用于对后端服务器成员进行TLS客户端身份验证。 |
tls_versions | array | TLS协议的版本列表,取值为:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。。 |
updated_at | string | 资源池最后一次更新的时间。 |
请求示例
curl -X GET -H "X-Auth-Token: <token>" http://octavia-api.octavia.svc.cluster.local:9876/v2.0/lbaas/pools/fa549f85-fa3a-4280-bb2a-00b09285e6b3
正常响应示例
{
"pool": {
"id": "fa549f85-fa3a-4280-bb2a-00b09285e6b3",
"name": "demo-pool",
"description": "",
"provisioning_status": "PENDING_UPDATE",
"operating_status": "ONLINE",
"admin_state_up": true,
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"session_persistence": null,
"project_id": "250a86f0dcc9467285fa8af54457e885",
"loadbalancers": [
{
"id": "17e9442b-4d7e-481e-9bf6-56495ff01c6d"
}
],
"listeners": [
{
"id": "e05cde88-4580-4e2b-a94a-bef5b64889f3"
}
],
"l7policies": [],
"created_at": "2022-04-25T07:41:56",
"updated_at": "2022-04-25T07:42:44",
"healthmonitor_id": "8551f03a-3777-4f64-932f-daaddc0147b5",
"members": [
{
"id": "2f97853a-e149-4a03-b057-2d91d8702197"
}
],
"tags": [],
"tls_container_ref": null,
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": null,
"tls_versions": null,
"alpn_protocols": null,
"tenant_id": "250a86f0dcc9467285fa8af54457e885"
}
}
正常响应代码
200
错误码
401,403,404,500
更新资源池
功能介绍
更新一个资源池。
接口约束
如果与pool绑定的load balancer的provisioning status不是ACTIVE,则不能更新该pool。
URI
PUT /v2.0/lbaas/pools/{pool_id}
参数 | 是否必选 | 描述 |
---|---|---|
pool_id | 是 | 待更新的资源池ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
admin_state_up | boolean | 否 | 资源池的管理状态,true表示启用,false表示停用。 |
alpn_protocols | array | 否 | ALPN协议列表。取值为:http/1.0、http/1.1或h2。 此字段暂不支持产品化配置,请勿使用。 |
ca_tls_container_ref | string | 否 | 资源池使用的CA证书ID。对证书管理服务中秘钥的引用。 此字段暂不支持产品化配置,请勿使用。 |
crl_container_ref | string | 否 | 资源池使用的CA证书吊销列表ID。证书管理服务中秘钥的URI。 此字段暂不支持产品化配置,请勿使用。 |
description | string | 否 | 资源池的描述信息。 |
lb_algorithm | string | 否 | 资源池的负载均衡算法。取值为: 1、ROUND_ROBIN:加权轮询算法。 2、LEAST_CONNECTIONS:加权最少连接算法。 3、SOURCE_IP:源IP算法。 |
name | string | 否 | 资源池的名称。 |
pool_id | uuid | 是 | 资源池的ID。 |
session_persistence | object | 否 | 资源池的会话持久化对象。 |
tags | list | 否 | 标签。 |
tls_enabled | boolean | 否 | 是否启用TLS加密。默认为false。 |
tls_ciphers | string | 否 | OpenSSL格式的密码列表(以冒号分隔)。 |
tls_container_ref | string | 否 | 关联的包含PKCS12格式证书/密钥的证书服务机密。用于对后端服务器成员进行TLS客户端身份验证。 |
tls_versions | array | 否 | TLS协议的版本列表,取值为:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
admin_state_up | boolean | 资源池的管理状态,true表示启用,false表示停用。 |
alpn_protocols | array | ALPN协议列表。取值为:http/1.0、http/1.1或h2。 此字段暂不支持产品化配置,请勿使用。 |
ca_tls_container_ref | string | 资源池使用的CA证书ID。对证书管理服务中秘钥的引用。 此字段暂不支持产品化配置,请勿使用。 |
created_at | string | 资源池创建的时间。 |
crl_container_ref | string | 资源池使用的CA证书吊销列表ID。证书管理服务中秘钥的URI。 此字段暂不支持产品化配置,请勿使用。 |
description | string | 资源池的描述信息。 |
healthmonitor_id | uuid | 资源池关联的健康检查器ID。 |
id | uuid | 资源池的ID。 |
lb_algorithm | string | 资源池的负载均衡算法。取值为: 1、ROUND_ROBIN:加权轮询算法。 2、LEAST_CONNECTIONS:加权最少连接算法。 3、SOURCE_IP:源IP算法。 |
listeners | array | 资源池关联的监听器ID列表。 |
loadbalancers | array | 资源池关联的负载均衡器ID列表。 |
members | array | 资源池关联的成员ID列表。 |
name | string | 资源池的名称。 |
operating_status | string | 资源池的运行状态。 |
project_id | string | 资源池所属的项目ID。 |
protocol | string | 资源池的协议。取值为:TCP、UDP、HTTP、PROXY 。 |
provisioning_status | string | 资源池的配置状态。 |
session_persistence | object | 资源池的会话持久化对象。 |
tags | list | 标签。 |
tls_enabled | boolean | 是否启用TLS加密。默认为false。 |
tls_ciphers | string | OpenSSL格式的密码列表(以冒号分隔)。 |
tls_container_ref | string | 关联的包含PKCS12格式证书/密钥的证书服务机密。用于对后端服务器成员进行TLS客户端身份验证。 |
tls_versions | array | TLS协议的版本列表,取值为:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。。 |
updated_at | string | 资源池最后一次更新的时间。 |
请求示例
curl -X PUT -H "X-Auth-Token: <token>" -d '{"pool": {"name": "demo-pool-2", "description": "update the demo pool", "lb_algorithm": "SOURCE_IP"}}' http://octavia-api.octavia.svc.cluster.local:9876/v2.0/lbaas/pools/fa549f85-fa3a-4280-bb2a-00b09285e6b3
{
"pool": {
"name": "demo-pool-2",
"description": "update the demo pool",
"lb_algorithm": "SOURCE_IP"
}
}
正常响应示例
{
"pool": {
"id": "fa549f85-fa3a-4280-bb2a-00b09285e6b3",
"name": "demo-pool-2",
"description": "update the demo pool",
"provisioning_status": "PENDING_UPDATE",
"operating_status": "ERROR",
"admin_state_up": true,
"protocol": "HTTP",
"lb_algorithm": "SOURCE_IP",
"session_persistence": null,
"project_id": "250a86f0dcc9467285fa8af54457e885",
"loadbalancers": [
{
"id": "17e9442b-4d7e-481e-9bf6-56495ff01c6d"
}
],
"listeners": [
{
"id": "e05cde88-4580-4e2b-a94a-bef5b64889f3"
}
],
"l7policies": [],
"created_at": "2022-04-25T07:41:56",
"updated_at": "2022-04-25T07:45:49",
"healthmonitor_id": "8551f03a-3777-4f64-932f-daaddc0147b5",
"members": [
{
"id": "2f97853a-e149-4a03-b057-2d91d8702197"
}
],
"tags": [],
"tls_container_ref": null,
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": null,
"tls_versions": null,
"alpn_protocols": null,
"tenant_id": "250a86f0dcc9467285fa8af54457e885"
}
}
正常响应代码
202
错误码
400,401,403,404,409,500
删除资源池
功能介绍
删除一个资源池。
前提条件
接口约束
如果与pool绑定的load balancer的provisioning status不是ACTIVE,则不能删除该pool。
如果此pool被l7policy关联,则不能删除该pool。
URI
DELETE /v2.0/lbaas/pools/{pool_id}
参数 | 是否必选 | 描述 |
---|---|---|
pool_id | 是 | 待删除的资源池ID。 |
请求消息
无
响应消息
无
请求示例
curl -X DELETE -H "X-Auth-Token: <token>" http://octavia-api.octavia.svc.cluster.local:9876/v2.0/lbaas/pools/6508798a-d5fa-4321-97ac-61797a078e32
正常响应示例
无
正常响应代码
204
错误码
400,401,403,404,409,500