This project is maintained by iesgn
El balanceador de carga proporciona un servicio para dividir de manera equitativa, a través de un algoritmo, el tráfico recibido en servidores virtuales que atienden una aplicación. En este ejemplo vamos a partir de una infraestructura de dos servidores web y vamos a crear un balanceador de carga que nos posibilite repartir las peticiones entre los dos servidores.
Para acceder a la configuración del balanceador de carga escogemos la opción Load Balancer. Lo primero que tenemos que hacer es la creación de un Pool. Un pool es un conjunto de miembros, tales como servidores web donde se recibe y procesa el tráfico. La información que tenemo que configurar es la siguiente:
Un monitor determina si un miembro del pool puede procesar una petición o no. Para que un miembro este activo, cada uno de los monitores del pool deberá declararlo como activo.
Podemos tener varios monitores disponibles y entre ellos escoger los que queremos tener habilitados.
Al crear un monitor hay que indicar la siguiente información:
Un miembro representa el servicio que se ejecuta en el servidor, son responsables de atender las solicitudes recibidas a través de IP virtual del VIP.
Podemos tener varios miembros disponibles y entre ellos escoger los mimebros habilitados.
Al crear un nuevo miembro hay que indicar la siguiente información:
El VIP especifica la dirección IP virtual y puerto de un balanceador el el cual se recibirá todo el tráfico de los clientes. Hay que indicar una IP fija al balanceador y una IP flotante para que sea accesible desde el exterior.
Para configurar la IP virtual tenemos que indicar la siguiente información:
Sesión persistente: Con este parámetro especificaremos que queremos aplicar una sesión para las peticiones es decir que los miembros pertenecientes a la misma sesión sean procesados por el mismo miembro. Los tipos de sesiones actualmente soportados son:
Para crear un pool:
neutron lb-pool-create --lb-method METODO --name NOMBRE --protocol PROTOCOLO --subnet-id ID_SUBRED
Más instrucciones para gestionar los pools_
# Para listar los pools
neutron lb-pool-list
# Para obtener información de un pool
neutron lb-pool-show NOMBRE
# Para borrar un pool
ńeutron lb-pool-delete NOMBRE
Para añadir un miembro al pool:
neutron lb-member-create --address IP --protocol-port PUERTO NOMBRE_POOL
Más operaciones sobre los miembros:
neutron lb-member-list
neutron lb-member-delete NOMBRE
Para añadir un monitor:
neutron lb-healthmonitor-create --delay PERIODO --type TIPO --max-retries INTENTOS --timeout ESPERA
neutron lb-healthmonitor-associate MONITOR_ID NOMBRE_POOL
Para crear un vip:
neutron lb-vip-create --name NOMBRE --protocol-port PUERTO --protocol PROTOCOLO --subnet-id SUBRED_ID NOMBRE_POOL
neutron floatingip-associate ip_id port_id