Los balanceadores de carga nos permiten repartir la carga de tráfico HTTP/HTTPS o conexiones TCP a un puerto concreto, para un grupo de Instancias que pertenezcan al pool del Balanceador.
En este apartado veremos las posibles configuraciones de un balanceador de carga en SoaX.
En este caso la configuración de Balanceadores de carga disponible con Octavia es Activo-Activo a nivel de servidores y gestion de distribución del tráfico.
Puede conocer las diferencias entre dos tipos de configuraciones estándard aqui:
En el modo activo-activo, todas las máquinas están activas y reciben tráfico simultáneamente.
El balanceador distribuye las solicitudes entre ellas según una política determinada (round robin, least connections, etc.).
Ventajas:
Ideal para aplicaciones distribuidas horizontalmente donde múltiples instancias pueden manejar tráfico al mismo tiempo como servidores web o microservicios.
Puede consultar la configuración de un balanceador de carga completo desde el D&D aqui:
En esta página se explica mas detalladamente las posibilidades de configuración de los load balancers.
En el modo activo-pasivo, solo una de las máquinas recibe tráfico (la activa), mientras que las otras están en espera (pasivas).
Si la máquina activa falla, el balanceador redirige el tráfico a una de las pasivas.
Ventajas:
Ideal para bases de datos, servidores de estado o sistemas donde no se pueden tener múltiples instancias activas al mismo tiempo.
Si desea consultar un cado de uso (ejemplo concreto) de una configuración Activo-Pasivo puede visitar la siguiente página:
En primer lugar debemos acceder a la sección de balanceadores de carga en Soax:

Una vez accedemos a la ventana de Balanceadores, podremos visualizar el listado de Balanceadores existentes y podremos añadir con la pestaña
un nuevo balanceador.
Para crear un balanceador de carga existen dos posibilidades:

Permite el despliegue conjunto de Balanceador, Listener, Pool y Monitor con una configuración limitada.
Para consultar la creación de un balanceador de carga completo visite:
No contempla la creación conjunta de Balanceador, Listener, Pool y Monitor.
Requiere la creación de tales recursos de forma independiente permitiendo mayor detalle en su configuración y gestión.
Para crear un balanceador de carga simple debemos acceder a la ventana de Balanceadores, seleccionar
y posteriormente Crear balanceador simple.

Una vez accedemos a la ventana para crear un balanceador simple, podremos ver los siguientes campos:

Nombre del Balanceador.
Especificamos el sabor que requiere el balanceador.

Podemos elegir si el Balanceador va a arrancar en modo activo o inactivo.
Debemos de especificar la red en la que desplegaremos el balanceador.
Debemos de especificar la subred en la que tendremos las instancias que queramos asociar al Balanceador.
Podemos añadir una descripción del Balanceador.
Para crear un Listener y posteriormente asociar a un balanceador existente, debemos acceder a la ventana de listeners dentro de la sección de balanceadores:

Una vez accedemos a la ventana de listeners, para proceder con la creación de un Listener seleccionamos
y añadimos su configuración que contiene:

Nombre del Balanceador y se le añade -listener.
Podemos añadir una descripción del Listener.
Especifica el número de conexiones simultaneas al balanceador, -1 significa sin limites.
Especificamos el protocolo entre el balanceador y listener.

Podemos elegir si el listener va a arrancar en modo activo o inactivo.
Podemos especificar el puerto del protocolo, por si fuera uno alternativo a los indicados en HTTP y HTTPS, en TCP deberemos de indicar el puerto especifico.

De todos los balanceadores simples existentes podremos seleccionar en el desplegable al que queremos asociar este Listener.
En caso de que un balanceador esté en proceso de creación como "PEDING_CREATE", se deberá esperar hasta que aparezca con el estado como "ACTIVO" para poder asociar el Listener en el desplegable.
Para crear un Pool y posteriormente asociar a un Listener existente, debemos acceder a la ventana de listeners dentro de la sección de balanceadores:

Una vez accedemos a la ventana de pools, para proceder con la creación de un Pool seleccionamos
y añadimos su configuración que contiene:

Nombre del Balanceador y se le añade -pool.
Seleccionar el Listener al que vamos a asociar el pool que se está creando.

Podemos elegir si el pool va a arrancar en modo activo o inactivo.
Podemos elegir entre diferentes algoritmos de balanceo de carga.

LEAST_CONNECTIONS: Calcula el número de conexiones activas por Instancia durante un tiempo determinado y dirige el tráfico entrante a la Instancia con la menor cantidad de conexiones.
ROUND_ROBIN: Es un método para seleccionar todos las instancias en un pool de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al último y empezando de nuevo desde la primera Instancia.
SOURCE_IP: Todas las conexiones con la misma IP de origen serán manejadas por el mismo miembro del pool.
SOURCE_IP_PORT: Todas las conexiones con la misma IP de origen serán manejadas por el mismo miembro del pool dependiendo del puerto.

APP__COOKIE: Funciona de la misma manera que HTTP_COOKIE, sin embargo este método resulta útil si dispone de aplicaciones y servicios de backend web que no pueden generar sus propias cookies.
HTTP_COOKIE: Al configurar la persistencia de cookie, el Balanceador inserta una cookie en la respuesta. Los parámetros configurados en la cookie permiten la persistencia de sesiones.
SOURCE_IP: Mantiene las sesiones provenientes de la IP origen al mismo servidor.
Podemos añadir una descripción del Pool.
Para asociar miembros a un Pool ya creado, se debe acceder a la ventana de Pools y seleccionar
y acceder a la administración de miembros del Pool seleccionado.


Una vez accedemos, aparecerá una ventana con los miembros ya asociados al Pool y donde se pueden modificar y eliminar tales miembros del Pool. Por otro lado, si seleccionamos
podemos abrir la ventana de configuración de un nuevo miembro.

Una vez accedemos a la ventana de crear miembro, tenemos los diferentes campos de configuración a rellenar:

Debe seleccionar previamente la red y subred donde se desea crear el miembro.
En caso contrario, aparecerá un mensaje informativo indicándolo.
Nombre del Balanceador y se le añade -pool.
Podemos elegir si el pool va a arrancar en modo activo o inactivo.
Indica el orden de importancia de dicho miembro.
Especifica el puerto al que se desea enviar tráfico.
Seleccionar la red donde se requiere al miembro.
Seleccionar la subred donde se requiere al miembro.
Aparecerán los puertos disponibles a los que asociar el miembro.
Para crear un Monitor y posteriormente asociar a un Pool existente, debemos acceder a la ventana de monitores dentro de la sección de balanceadores:

Una vez accedemos a la ventana de monitores, para proceder con la creación de un Monitor seleccionamos
y añadimos su configuración que contiene:

Nombre del monitor.
El tiempo que tarda el monitor en enviar un mensaje de comprobación.
Tiempo de espera hasta recibir respuesta de la comprobación de estado.
Número de intentos fallidos antes de dar como erróneo el nodo del pool.
Podemos elegir entre diferentes tipos.

Seleccionar el Pool al que vamos a asociar el monitor que se está creando.

Para consultar un ejemplo práctico de uso de balanceador puede consultar: