OpenStack

Curso OpenStack en Emergya. Enero 2016

Unidades

View the Project on GitHub iesgn/emergya

Curso OpenStack

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 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:

Información básica:

balanceador

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:

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:

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:

Posteriormente desde el apartado de IP flotantes, podemos asignar una ip flotante al dispositivo balanceador.

balanceador

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
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