Curso OpenStack en Emergya. Enero 2016
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 Red->Balanceadores de carga. 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 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:
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:
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:
Persistencia de sesión: 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:
Posteriormente desde el apartado de IP flotantes, podemos asignar una ip flotante al dispositivo balanceador.
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
neutron 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