Balanceador de carga

Balanceador de carga

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.

Configuración del balanceador de carga

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:

Información básica:

balanceador

Monitores

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.

balanceador

Al crear un monitor hay que indicar la siguiente información:

Miembros

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.

balanceador

Al crear un nuevo miembro hay que indicar la siguiente información:

VIP

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.

balanceador

Para configurar la IP virtual tenemos que indicar la siguiente información:

Gestionar el balanceador de carga desde la línea de comandos

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