Creación de un balanceador de carga
Función
Esta API se utiliza para crear un balanceador de carga de red privada. Después de crear el balanceador de carga, se devuelven los detalles, como el ID del balanceador de carga, la dirección IP y el ID de subred.
Para crear un balanceador de carga de red pública, también debe llamar a la API para asignar un EIP y asociar esta dirección IP al puerto vinculado a la dirección IP del balanceador de carga de red privada.
URI
POST /v2.0/lbaas/loadbalancers
Solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
loadbalancer |
Sí |
Object |
Especifica el balanceador de carga. Para más detalles, consulte Tabla 2. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
No |
String |
Especifica el nombre del balanceador de carga. El valor contiene un máximo de 255 caracteres. |
description |
No |
String |
Proporciona información adicional sobre el balanceador de carga. El valor contiene un máximo de 255 caracteres. |
tenant_id |
No |
String |
Especifica el ID del proyecto en el que se utiliza el balanceador de carga. El valor contiene un máximo de 255 caracteres. El valor debe ser el mismo que el valor de project_id en el token. |
project_id |
No |
String |
Especifica el ID del proyecto al que pertenece el balanceador de carga. Este parámetro tiene el mismo significado que tenant_id. El valor debe ser el mismo que el valor de project_id en el token. |
vip_subnet_id |
Sí |
String |
Especifica el ID de red IPv4 de la subred en la que funciona el balanceador de carga. Puede obtener el valor llamando a la API para consultar subredes ({VPC endpoint}/v2.0/subnets) mediante el método GET. La dirección IP privada del balanceador de carga se encuentra en esta subred. Sólo se admiten subredes IPv4. |
provider |
No |
String |
Especifica el proveedor del balanceador de carga. El valor solo puede ser vlb. |
vip_address |
No |
String |
Especifica la dirección IP privada del balanceador de carga. Esta dirección IP debe ser la de la subred especificada por vip_subnet_id. Si no se especifica este parámetro, se asigna automáticamente una dirección IP al balanceador de carga desde la subred especificada por vip_subnet_id. El valor incluye un máximo de 64 caracteres. |
admin_state_up |
No |
Boolean |
Especifica el estado administrativo del balanceador de carga. Este parámetro está reservado y el valor predeterminado es true. |
Respuesta
Parámetro |
Tipo |
Descripción |
---|---|---|
loadbalancer |
Object |
Especifica el balanceador de carga. Para más detalles, consulte Tabla 4. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID del balanceador de carga. |
project_id |
String |
Especifica el ID del proyecto al que pertenece el balanceador de carga. Este parámetro tiene el mismo significado que tenant_id. |
tenant_id |
String |
Especifica el ID del proyecto en el que se utiliza el balanceador de carga. El valor contiene un máximo de 255 caracteres. |
name |
String |
Especifica el nombre del balanceador de carga. El valor contiene un máximo de 255 caracteres. |
description |
String |
Proporciona información adicional sobre el balanceador de carga. El valor contiene un máximo de 255 caracteres. |
vip_subnet_id |
String |
Especifica el ID de red IPv4 de la subred en la que funciona el balanceador de carga. |
vip_port_id |
String |
Especifica el ID del puerto enlazado a la dirección IP privada del balanceador de carga. Cuando se crea un balanceador de carga, el sistema crea automáticamente un puerto y lo asocia a un grupo de seguridad. Sin embargo, el grupo de seguridad no tendrá efecto. |
provider |
String |
Especifica el proveedor del balanceador de carga. |
vip_address |
String |
Especifica la dirección IP privada del balanceador de carga. El valor incluye un máximo de 64 caracteres. |
listeners |
Array |
Muestra los ID de oyentes agregados al balanceador de carga. Para más detalles, consulte Tabla 5. |
pools |
Array |
Muestra los ID de los grupos de servidores backend asociados con el balanceador de carga. Para más detalles, consulte Tabla 6. |
operating_status |
String |
Este parámetro está reservado, y su valor puede ser ONLINE o FROZEN. Especifica el estado de funcionamiento del balanceador de carga. |
provisioning_status |
String |
Este parámetro está reservado y su valor sólo puede ser ACTIVE. Especifica el estado de aprovisionamiento del balanceador de carga. |
admin_state_up |
Boolean |
Especifica el estado administrativo del balanceador de carga. Este parámetro está reservado. El valor puede ser true o false.
|
tags |
Array |
Enumera las etiquetas de balanceador de carga. |
created_at |
String |
Especifica la hora en que se creó el balanceador de carga. La hora UTC está en formato AAAA-MM-DDTHH:MM:SS. El valor contiene un máximo de 19 caracteres. |
updated_at |
String |
Especifica la hora a la que se actualizó el balanceador de carga. La hora UTC está en formato AAAA-MM-DDTHH:MM:SS. El valor contiene un máximo de 19 caracteres. |
Ejemplo de la solicitud
- Ejemplo de solicitud 1: Creación de un balanceador de carga de red privada
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 } }
- Ejemplo de solicitud 2
Vincule un EIP al puerto que se ha vinculado a la dirección IP privada del balanceador de carga. Para obtener más información sobre los parámetros, consulte Tabla 7.
Tabla 7 Parámetros de solicitud Parámetro
Obligatorio
Tipo
Descripción
publicip
Sí
Object
Especifica el EIP. Para más detalles, consulte Tabla 8.
bandwidth
Sí
Object
Especifica el ancho de banda. Para más detalles, consulte Tabla 9.
enterprise_project_id
No
String
- Especifica el ID del proyecto de empresa. El valor es 0 o un UUID que puede contener un máximo de 36 caracteres, incluyendo guiones (-).
- Al asignar un EIP, debe vincular un ID de proyecto de empresa al EIP.
- Si no se especifica este parámetro, el valor predeterminado es 0.
NOTA:Para obtener más información acerca de los proyectos de empresa y cómo obtener los ID de proyecto de empresa, consulte Guía del usuario de Enterprise Management.
Tabla 8 Descripción de parámetro publicip Parámetro
Obligatorio
Tipo
Descripción
type
Sí
String
- Especifica el tipo de EIP.
- El valor puede ser 5_telcom, 5_union, 5_bgp, or 5_sbgp.
- CN South-Guangzhou: 5_bgp y 5_sbgp
- CN East-Shanghai2: 5_bgp y 5_sbgp
- CN North-Beijing1: 5_bgp y 5_sbgp
- CN-Hong Kong: 5_bgp
- CN Southwest-Guiyang1: 5_bgp y 5_sbgp
- CN North-Beijing4: 5_bgp y 5_sbgp
- Nota:
- El valor configurado debe ser compatible con el sistema.
- publicip_id es un puerto IPv4. Si no se especifica publicip_type, el valor predeterminado es 5_bgp.
ip_version
No
Integer
- Especifica la versión de EIP.
- El valor puede ser 4 y 6. 4 indica una dirección IPv4, y 6 indica una dirección IPv6.
- Nota:
- El valor configurado debe ser compatible con el sistema.
- Si este parámetro se deja en blanco o es una string vacía, se asigna una dirección IPv4 de forma predeterminada.
ip_address
No
String
- Especifica el EIP que se va a asignar. El sistema asigna automáticamente un EIP si no lo especifica.
- El valor debe ser una dirección IPv4 válida en el intervalo de direcciones IP disponible.
Tabla 9 Descripción del parámetro bandwidth Parámetro
Obligatorio
Tipo
Descripción
name
No
String
- Especifica el nombre del ancho de banda.
- El valor puede contener de 1 a 64 caracteres que pueden contener letras, dígitos, guiones bajos (_), guiones (-) y puntos (.).
- Este parámetro es obligatorio cuando share_type se establece en PER. Este parámetro se ignorará cuando share_type se establezca en WHOLE con un ID especificado.
size
No
Integer
- Especifica el ancho de banda (Mbit/s).
- El valor varía de 1 a 300 de forma predeterminada. (El rango puede variar dependiendo de la configuración en cada región. Puede ver el rango de ancho de banda de cada región en la consola de gestión.)
- Este parámetro es obligatorio cuando share_type se establece en PER. Este parámetro se ignorará cuando share_type se establezca en WHOLE con un ID especificado.
- La unidad mínima para el ajuste de ancho de banda varía dependiendo del rango de ancho de banda. Dichos aspectos se detallan a continuación:
- El incremento mínimo es de 1 Mbit/s si el ancho de banda permitido varía de 0 a 300 Mbit/s.
- El incremento mínimo es de 50 Mbit/s si el ancho de banda permitido varía de 301 Mbit/s a 1000 Mbit/s.
- El incremento mínimo es de 500 Mbit/s si el ancho de banda permitido es mayor de 1,000 Mbit/s.
id
No
String
- Especifica el ID de ancho de banda. Puede especificar un ancho de banda compartido existente al asignar un EIP.
- El valor puede ser el ID del ancho de banda compartido cuyo tipo se establece en WHOLE.
share_type
Sí
String
- Especifica el tipo de ancho de banda.
- Opciones de valor:
- PER: indica ancho de banda dedicado.
- WHOLE: ancho de banda compartido indicado.
charge_mode
No
String
- El valor predeterminado es traffic. Actualmente, solo se admite la facturación por tráfico.
- Paso 1: Solicitar una EIP.
POST https://{VPCEndpoint}/v1/8b7e35ad379141fc9df3e178bd64f55c/publicips { "publicip": { "type": "5_bgp", "ip_version": 4 }, "bandwidth": { "name": "bandwidth123", "size": 10, "share_type": "PER" } }
- Ejemplo de la respuesta
{ "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 } }
- Paso 2: Vincular el EIP. (El valor de public_id es el mismo que en el ▪ Ejemplo de respuesta, y el valor de port_id es el mismo que el de vip_port_id en el Ejemplo de respuesta 1.)
PUT /v1/8b7e35ad379141fc9df3e178bd64f55c/publicips/f588ccfa-8750-4d7c-bf5d-2ede24414706 { "publicip": { "port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7" } }
- Ejemplo de la respuesta
{ "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 } }
- Una vez completadas las etapas anteriores, el balanceador de carga tiene la capacidad de acceder a la red pública. Puede acceder al balanceador de carga usando 139.9.204.183, el valor del parámetro public_ip_address.
Ejemplo de la respuesta
- Ejemplo de respuesta 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" } }
- Ejemplo de respuesta 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 } }
Una vez completadas las etapas anteriores, el balanceador de carga tiene la capacidad de acceder a la red pública. Puede acceder al balanceador de carga usando 139.9.204.183, el valor del parámetro public_ip_address.
Código de estado
Para más detalles, consulte Códigos de estado.