IAW - Implantación de Aplicaciones Web
José Juan Sánchez Hernández
IES Celia Viñas (Almería) - 2022/2023
En esta práctica vamos a modificar los archivos
docker-compose.yml
que hemos creado en las prácticas 15 y
16,
y vamos a incluir un nuevo contenedor Docker con HAProxy para balancear la carga de
los contenedores que ejecutan la aplicación web.
Posteriormente deberá realizar la implantación de ambos sitios web en Amazon Web Services (AWS) haciendo uso de contenedores Docker y de la herramienta Docker Compose.
docker-compose.yml
Cuando ejecutamos docker-compose
tenemos la posibilidad
de indicar el número de instancias que queremos tener de cada uno de los
servicios que vamos a crear.
El comando sería el siguiente:
docker-compose up --scale SERVICE=NUM
Donde:
SERVICE
es el nombre del servicio que queremos
escalarNUM
es el número de instancias que queremos tener de
ese servicio.Ejemplo:
En el siguiente ejemplo estaríamos iniciando todos los servicios que
están definidos en el archivo docker-compose.yml
y para el
servicio de wordpress
estaríamos creando 4
instancias.
docker-compose up --scale wordpress=4
docker-compose.yml
con un balanceador de cargaA continuación se muestra un fragmento de un archivo
docker-compose.yml
que incluye un servicio de balanceo de
carga con HAProxy que nos puede
servir de ejemplo:
services:
lb:
image: dockercloud/haproxy <1>
ports:
- 80:80 <2>
- 1936:1936 <3>
links:
- apache <4>
volumes:
- /var/run/docker.sock:/var/run/docker.sock <5>
apache:
...
<1> Utilizaremos la imagen dockercloud/haproxy que está disponible en Docker Hub.
<2> El puerto 80 será el puerto del servicio que queremos balancear.
<3> El puerto 1936 nos permite acceder a una página web con información estadística del balanceador.
<4> Creamos un enlace con el servicio que queremos balancear. Los enlaces permiten que los contenedores se descubran entre sí y transfieran de manera segura información sobre un contenedor a otro contenedor.
<5> Es necesario montar el socket UNIX del Docker daemon
(/var/run/docker.sock) para que el contenedor lb
pueda
comunicarse con el Docker daemon y obtener información del resto de
contenedores.
haproxy.cfg
El archivo de configuración que utiliza HAProxy es
haproxy.cfg
.
Localice el archivo haproxy.cfg
dentro del contenedor
que ejecuta el balanceo de carga y estudie los parámetros de
configuración que está utilizando.
Esta
página forma parte del curso
Implantación de Aplicaciones
Web de José Juan Sánchez y
su contenido se distribuye bajo una
licencia
Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0
Internacional.