Creación de un equilibrador de carga de red pública o privada
Puede crear un IBM Cloud® Network Load Balancer for VPC (NLB) con la consola, CLI o API.
Antes de empezar
Para configurar un NLB público o privado, asegúrese de que ha cumplido los siguientes requisitos previos:
- Si no tiene una VPC, cree una en la región en el que desea crear el NLB.
- Cree una subred en la zona preferida de su VPC.
El servicio NLB puede añadir reglas a las tablas de enrutamiento personalizadas para garantizar la disponibilidad del servicio en algunas condiciones de fallo. Como resultado, si el cliente está fuera de la zona y/o VPC del NLB, debe añadir una tabla de direccionamiento personalizada de entrada a la VPC donde reside el NLB con el origen de tráfico adecuado seleccionado.
Para el NLB privado, en función de la ubicación de los clientes, debe asegurarse de que existen tablas de direccionamiento de entrada (tal como se describe en la Tabla 1).
Ubicación del cliente | Tipo de tabla de direccionamiento | Origen del tráfico |
---|---|---|
Local | Ingress | Direct Link |
Otra VPC o infraestructura clásica | Ingress | Transit Gateway |
Otra zona de disponibilidad de la misma VPC | Ingress | Zona de VPC |
Para obtener más información, consulte Acerca de tablas y rutas de direccionamiento.
Creación de un equilibrador de carga de red en la consola
Para crear y configurar un equilibrador de carga de red en la consola de IBM Cloud, siga estos pasos:
-
Desde su navegador, abra la consola IBM Cloud y conéctese a su cuenta.
-
Seleccione el
del menú de Navegación, luego haga clic en el ícono Infraestructura
> Red > Balanceadores de carga.
-
Haga clic en Crear + en la parte superior derecha de la página.
-
Para el tipo de equilibrador de carga, seleccione el mosaico de equilibrador de carga de red (NLB).
-
Para Ubicación, edite los campos siguientes, si es necesario.
- Geografía- Indica la geografía en la que desea que se cree el equilibrador de carga.
- Región- Indica la región en la que desea que se cree el equilibrador de carga.
-
Para más detalles, complete la siguiente información:
-
Nombre- Introduzca un nombre para el equilibrador de carga, como
my-load-balancer
. -
Grupo de recursos: seleccione un grupo de recursos para el equilibrador de carga.
-
Etiquetas- (Opcional) Añada etiquetas para ayudarle a organizar y encontrar sus recursos. Puede añadir más etiquetas posteriormente. Para obtener más información, consulte Cómo trabajar con etiquetas.
-
Etiquetas de gestión de acceso-(Opcional) Añada etiquetas de gestión de acceso a los recursos para ayudar a organizar las relaciones de control de acceso. El único formato admitido para las etiquetas de gestión de accesos es
key:value
. Para obtener más información, consulte Control del acceso a los recursos mediante etiquetas. -
Nube privada virtual- Seleccione su VPC.
-
Para el tipo. seleccione Público o Privado.
Sólo para el tipo Privado, puede activar el modo de enrutamiento, que se utiliza para desplegar funciones de red virtuales (VNF) de alta disponibilidad. Para ver casos de uso e instrucciones de extremo a extremo, consulte Acerca de despliegues de función de red virtual HA.
-
Para el tipo de DNS, seleccione Público o Privado. Las zonas DNS privadas sólo pueden resolverse en IBM Cloud, y sólo desde redes explícitamente permitidas en una cuenta o con acceso cruzado entre cuentas.
Sólo para tipo privado, pulse Enlazar + para especificar la información de zona e instancia de DNS y, a continuación, pulse Enlazar.
-
Seleccione las subredes en las que desea crear su equilibrador de carga. Para maximizar la disponibilidad de la aplicación, seleccione subredes de diferentes zonas.
-
-
En Grupos back-end, haga clic en Crear grupo y especifique la siguiente información para crear un grupo back-end. Cuando haya terminado, haga clic en Crear.
Puede crear una o varias agrupaciones.
-
Especifique un nombre para la agrupación, como por ejemplo
my-pool
. -
Seleccione un protocolo para las instancias de esta agrupación. El protocolo de la agrupación debe coincidir con el protocolo del escucha asociado. Por ejemplo, si el escucha es TCP, el protocolo de la agrupación debe ser TCP. O, si el escucha es UDP, el protocolo de la agrupación también debe ser UDP.
-
Elija la retención de sesiones y seleccione los valores Ninguno o IP de origen. Si elige IP de origen, todas las solicitudes durante la sesión se envían a la misma instancia.
-
Seleccione el método, que es el algoritmo de equilibrio de carga. Se muestran las siguientes opciones:
- Round robin: las solicitudes se envían a cada instancia en turnos. Todas las instancias reciben aproximadamente un mismo número de conexiones de cliente.
- Round robin ponderado: las solicitudes se envían a cada instancia en proporción a su ponderación asignada. Por ejemplo, si tiene instancias A, B y C, y sus pesos se establecen en 60, 60 y 30, entonces las instancias A y B reciben el mismo número de conexiones, y la instancia C recibe la mitad de conexiones.
- Menos conexiones: las solicitudes se reenvían a la instancia que en ese momento tiene el menor número de conexiones.
-
Para la comprobación de estado, se muestran las opciones siguientes:
- Ruta de comprobación de estado - Una ruta de comprobación de estado sólo es aplicable si selecciona HTTP como protocolo de comprobación de estado. La vía de acceso de comprobación de estado especifica el URL que utiliza el equilibrador de carga para enviar las solicitudes de comprobación de estado HTTP a las instancias de la agrupación. De forma predeterminada, las comprobaciones de estado se envían a la vía de acceso raíz (/).
- Protocolo de estado: el protocolo que utiliza el equilibrador de carga para enviar mensajes de comprobación de estado a las instancias de la agrupación.
- Puerto de salud: puerto al que el equilibrador de carga envía las solicitudes de comprobación de salud. De forma predeterminada, las comprobaciones de estado se envían en el mismo puerto en el que se envía el tráfico a la instancia.
- Interval: intervalo, en segundos, entre dos intentos consecutivos de comprobación de estado. De forma predeterminada, se envían comprobaciones de estado cada 5 segundos.
- Tiempo de espera (seg)- El tiempo máximo que el sistema espera una respuesta de una solicitud de comprobación de estado. De forma predeterminada, el equilibrador de carga espera 2 segundos para obtener una respuesta.
- Reintentos máximos: número máximo de intentos de comprobación de estado que realiza el equilibrador de carga antes de declarar que una instancia no está en buen estado. De forma predeterminada, se deja de considerar que una instancia está en buen estado después de dos comprobaciones de estado fallidas.
Puede conectar instancias de servidor tras crear la agrupación de fondo.
-
-
Opcionalmente, puede crear una copia de seguridad para cualquiera de sus grupos existentes. Esto permite que el grupo de respaldo gestione el tráfico en caso de que un miembro falle. Para ello, deberá crear una política a prueba de fallos:
Su balanceador de carga debe tener al menos un grupo para poder asignar un grupo de respaldo.
- Después de que el estado de su balanceador de carga cambie a Activo, seleccione la pestaña Back-end pools (Grupos de servidores back-end).
- En la página de la lista de grupos, haga clic en Editar y especifique la siguiente información:
- Acción: Seleccionar reenviar para crear un grupo de copia de seguridad. Esto activa la sección Destino.
- Destino: Seleccione un grupo de la lista de grupos compatibles para crear su grupo de copia de seguridad.
Para los equilibradores de carga de red, no se puede asignar un grupo como grupo de reserva si ya está conectado a un agente de escucha. Además, los oyentes no pueden vincularse a un grupo de reserva.
Aunque el equilibrador de carga deja de enviar conexiones a las instancias que no están en buen estado, el equilibrador de carga sigue supervisando el estado de estas instancias y reanuda su uso si se detecta que vuelven a estar en buen estado (es decir, si pasan correctamente dos intentos de comprobación de estado consecutivos).
Si las instancias de la agrupación no están en buen estado y cree que la aplicación se está ejecutando correctamente, vuelva a comprobar los valores de protocolo de estado y de vía de acceso de estado. Compruebe también los grupos de seguridad conectados a las instancias para asegurarse de que las reglas permiten el tráfico entre el equilibrador de carga y las instancias.
-
Haga clic en Crear oyente y especifique la siguiente información:
- Grupo de servidores predeterminado: el grupo de servidores predeterminado al que este receptor reenvía el tráfico.
- Protocolo: el protocolo que se debe utilizar para recibir las solicitudes entrantes.
- Puerto de escucha - El puerto de escucha en el que se reciben las solicitudes. Las opciones son:
- Puerto de oyente único: el puerto por el que el equilibrador de carga recibe el tráfico entrante del cliente.
- Rango de puertos de escucha: el rango de puertos donde el equilibrador de carga recibe el tráfico de cliente de entrada.
A continuación, pulse en Crear. Puede crear uno o varios escuchas.
-
En Grupos de seguridad, seleccione los grupos de seguridad que desea adjuntar a su equilibrador de carga o haga clic en Crear para crear un nuevo grupo de seguridad que adjuntar a su NLB.
Asegúrese de que el grupo de seguridad permite el tráfico de equilibrio de carga (oyente, objetivos y puertos de comprobación de estado). Si no especifica un grupo de seguridad, se adjunta el grupo de seguridad predeterminado de su VPC.
-
Pulse Añadir a estimación para revisar los precios del equilibrador de carga y crearlos.
Creación de un equilibrador de carga de red desde la CLI
En el ejemplo siguiente se muestra la utilización de la CLI para crear un Network Load Balancer for VPC (NLB). En este ejemplo, se encuentra frente a una instancia de servidor virtual de VPC (ID 0716_6acdd058-4607-4463-af08-d4999d983945
)
ejecutando un servidor TCP que escucha en el puerto 9090
. El equilibrador de carga tiene un escucha frontal, que permite el acceso seguro al servidor TCP.
Para crear un equilibrador de carga de red con la CLI, siga estos pasos:
-
Configure el entorno de la CLI.
-
Inicie sesión en su cuenta desde la CLI. Una vez introducida la contraseña, el sistema le preguntará qué cuenta y qué región desea utilizar.
ibmcloud login --sso
-
Crear un equilibrador de carga.
ibmcloud is load-balancer-create nlb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family network
Salida de ejemplo:
Creating load balancer nlb-test in resource group under account IBM Cloud Network Services as user test@ibm.com... ID r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Name nlb-test CRN crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Family Network Host name 99b5ab45-us-south.lb.test.appdomain.cloud Subnets ID Name 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c nlb Security Groups ID Name 0581-a1336811-39dc-5aff-a0e6-6489a43ca62v nlb1 Public IPs Private IPs Provision status create_pending Operating status offline Is public true Listeners Pools ID Name Resource group ID Name 3021f90279574ce287dd5fba82c08899 Default Created 2020-08-27T14:34:34.732-05:00
Crear un equilibrador de carga de red privada.
ibmcloud is load-balancer-create nlb-test private --subnet 07a7-37b4dcfc-841e-4d4a-9f9f-9e45ffbd0285 --family network
Salida de ejemplo:
Creating load balancer nlb-test in resource group under account CNS Development Account - netsvs as user test@us.ibm.com... ID r018-8a994baa-21ba-428c-ac3f-e3fd91fa92c9 Name nlb-test CRN crn:v1:bluemix:public:is:eu-gb-3:a/123456::load-balancer:r018-8a994baa-21ba-428c-ac3f-e3fd91fa92c9 Family Network Host name 8a994baa-eu-gb.lb.appdomain.cloud Subnets ID Name 07a7-37b4dcfc-841e-4d4a-9f9f-9e45ffbd0285 nlb1 Security Groups ID Name 0581-a1336811-39dc-5aff-a0e6-6489a43ca626 Public IPs Private IPs Provision status create_pending Operating status offline Is public false Listeners Pools ID Name Resource group ID Name 42c4f51adc3147b4b4049ad9826c30a1 Default Created 2021-03-22T11:34:57.34-05:00
-
Crear un grupo.
ibmcloud is load-balancer-pool-create nlb-pool r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 weighted_round_robin tcp 10 --failsafe-policy-action forward --failsafe-policy-target pool2
Salida de ejemplo:
Creating pool nlb-pool of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 Name nlb-pool Protocol tcp Algorithm weighted_round_robin Instance group ID Name - - Health monitor Type Port Health monitor URL Delay Retries Timeout http 8080 / 10 2 5 Failsafe policy Action Target ID Target name Healthy Member Threshold Count forward r006-815e16e7-8729-4d9e-9203-936a6b615ee1 pool2 0 Session persistence type source_ip Members Provision status active Created 2020-08-27T14:45:42.038-05:00
-
Cree un miembro.
ibmcloud is load-balancer-pool-member-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 9090 0716_6acdd058-4607-4463-af08-d4999d983945 --weight 70
Salida de ejemplo:
Creating member of pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 under account IBM Cloud Network Services as user test@ibm.com... ID r006-61f8b000-a90d-4abe-909e-c507dffec565 Port 9090 Target 0716_6acdd058-4607-4463-af08-d4999d983945 Weight 70 Health unknown Created 2020-08-27T14:59:55.446-05:00 Provision status create_pending
-
Cree un escucha.
ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
Salida de ejemplo:
Creating listener of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba Certificate instance - Connection limit - Port 7070 Protocol tcp Default pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 Provision status create_pending Created 2020-08-27T15:16:08.643-05:00
-
Obtenga detalles sobre su equilibrador de carga.
ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
Salida de ejemplo:
Getting load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Name nlb-test CRN crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Family Network Host name 99b5ab45-us-south.lb.test.appdomain.cloud Subnets ID Name 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c nlb Public IPs 150.238.50.78, 150.238.54.95 Private IPs 10.240.0.58, 10.240.0.59 Provision status active Operating status online Is public true Listeners r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba Pools ID Name r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 nlb-pool Resource group ID Name 3021f90279574ce287dd5fba82c08899 Default Created 2020-08-27T14:34:34.732-05:00
Creación de un equilibrador de carga de red con la API
El siguiente ejemplo ilustra la creación de un equilibrador de carga de red delante de dos instancias de servidor virtual VPC (192.168.100.5
y 192.168.100.6
) que ejecutan una aplicación web que escucha en el puerto
80
. El equilibrador de carga tiene un escucha frontal, que permite el acceso seguro a la aplicación web mediante HTTPS.
El ejemplo omite los pasos de requisito previo para utilizar la API para suministrar una VPC, subredes e instancias.
Para crear un equilibrador de carga de red con la API, siga estos pasos:
-
Configure el entorno de la API.
-
Almacene los siguientes valores en variables que se utilizarán en el comando API.
ResourceGroupId
- En primer lugar, obtenga su grupo de recursos y, a continuación, rellene la variable.
export ResourceGroupId=<your_resourcegroup_id>
-
Cree un equilibrador de carga con un listener, un pool y unas instancias de servidor adjuntas (miembros del pool).
curl -H "Authorization: $iam_token" -X POST "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \ -d '{ "name": "example-balancer", "is_public": true, "profile": { "name": "network-fixed" }, "listeners": [ { "certificate_instance": { "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/123456:b8877ea4-b8eg-467e-912a-da1eb7f031cg:certificate:43219c4c97d013fb2a95b21dddde1234" }, "port": 443, "protocol": "tcp", "default_pool": { "name": "example-pool" } } ], "pools": [ { "algorithm": "round_robin", "health_monitor": { "delay": 5, "max_retries": 2, "timeout": 2, "type": "tcp", "url_path": "/" }, "name": "example-pool", "protocol": "tcp", "session_persistence": { "cookie_name": "string", "type": "source_ip" }, "members": [ { "port": 80, "target": { "address": "192.168.100.5" }, "weight": 50 }, { "port": 80, "target": { "address": "192.168.100.6" }, "weight": 50 } ] } ], "subnets": [ { "id": "7ec87131-1c7e-4990-b4f0-a26f2e61f98e" } ] }'
Salida de ejemplo:
{ "created_at": "2018-07-12T23:17:07.5985381Z", "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "hostname": "ac34687d.lb.appdomain.cloud", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "is_public": true, "profile": { "name": "network-fixed", "family": "network" }, "listeners": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004" } ], "name": "example-balancer", "operating_status": "offline", "pools": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004", "name": "example-pool" } ], "provisioning_status": "create_pending", "resource_group": { "id": "56969d60-43e9-465c-883c-b9f7363e78e8" }, "subnets": [ { "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "name": "example-subnet" } ] }
Guarde el ID del equilibrador de carga que se va a utilizar en los pasos siguientes. Por ejemplo, puede guardarlo en la variable
lbid
.lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727
-
Obtenga detalles sobre el equilibrador de carga.
curl -H "Authorization: $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"
Deje pasar un tiempo para que se complete el suministro. Cuando el equilibrador de carga está listo, se establece en el estado
online
yactive
, tal como se muestra en la siguiente salida de ejemplo:{ "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "name": "example-balancer", "created_at": "2018-07-13T22:22:24.489Z", "hostname": "dd754295-e9e0-4c9d-bf6c-58fbc59e5727.lb.appdomain.cloud", "is_public": true, "profile": { "name": "network-fixed", "family": "network" }, "listeners": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004" } ], "operating_status": "online", "pools": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004", "name": "example-pool" } ], "private_ips": [ { "address": "192.168.10.5" }, { "address": "192.168.10.6" } ], "provisioning_status": "active", "public_ips": [ { "address": "169.11.111.115" }, { "address": "169.11.111.116" } ], "resource_group": { "id": "0738-56969d60-43e9-465c-883c-b9f7363e78e8" }, "subnets": [ { "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "name": "example-subnet" } ]