Cómo escalar los contenedores Docker utilizando NGINX como equilibrador de carga y proxy inverso

Cómo escalar los contenedores Docker utilizando NGINX como equilibrador de carga y proxy inverso
Docker Scaling es una de las características esenciales de la plataforma Docker. Nos permite ejecutar diferentes copias o réplicas de contenedores o servicios de Docker en el comando Docker Compose. Docker-Compose es una solución que nos ayuda a administrar aplicaciones y microservicios de contenedores múltiples.

Al escalar cualquier servicio en Docker Compose, puede mostrar el conflicto de que el puerto vinculante se asignará a un solo servicio. Hay muchas formas de resolver el problema especificado, pero un equilibrador de carga es uno de los enfoques más efectivos para administrar el tráfico desde diferentes contenedores.

Este blog demostrará cómo escalar un contenedor Docker utilizando NGINX como un equilibrador de carga y proxy inverso.

Cómo escalar los contenedores Docker utilizando NGINX como equilibrador de carga y proxy inverso?

El equilibrador de carga administra y distribuye el tráfico en el servidor desde contenedores. Aumenta la confiabilidad, capacidad y disponibilidad de aplicaciones y servicios. Como las réplicas de contenedores se ejecutan en la misma red sobre el mismo protocolo, que pueden causar conflictos, como exponer errores portuarios. Para este propósito, se puede utilizar un proxy inverso de Nginx o un equilibrador de carga para dividir el tráfico de los servicios de escala utilizando round-robin u otras técnicas de enrutamiento.

Para administrar los servicios de escala utilizando NGINX como equilibrador de carga, revise las instrucciones.

Paso 1: hacer Dockerfile

Primero, cree un DockerFile para contener el programa. Para este propósito, hemos especificado las instrucciones para dockerizar el "principal.irPrograma de Golang:

De Golang: 1.8
WorkDir/Go/SRC/App
Copia principal.ir .
Ejecutar ir compilación -o servidor web .
PUNTO DE ENTRADA ["./Servidor web"]

Paso 2: Crear "Docker-Compose.archivo YML "

A continuación, cree un "compuesto de acopolador.YML"Archivo y copie las instrucciones proporcionadas en el archivo. Estas instrucciones contienen:

  • "serviciosClave para configurar el servicio. Por ejemplo, hemos configurado el "web"Servicio y"nginx" servicio. Aquí el "nginx"El servicio actúa como un equilibrador de carga para administrar el tráfico de escalar el servicio" web ".
  • "construir"La tecla demuestra que el servicio" web "utilizará DockerFile para contenedores del servicio.
  • No hay necesidad de proporcionar el puerto de exposición al "web"Servicio como lo administra el equilibrador de carga Nginx.
  • "volúmenes"Se usa para unir el"confusión"Archivo en la ruta del contenedor:
  • "depende de"Se utiliza para determinar las dependencias entre los servicios de composición.
  • "puerto"Se utiliza para especificar el puerto de exposición del servicio NGINX donde los servicios de escala se gestionan a través de alguna técnica de enrutamiento:
Versión: "Alpine"
servicios:
web:
construir: .
Nginx:
Imagen: Nginx: Último
Volúmenes:
- ./nginx.conf:/etc/nginx/nginx.conf: Ro
depende de:
- web
Puertos:
- 8080: 8080

Paso 3: hacer "nginx.archivo conf ”

A continuación, haz un "nginx.confusión"Archivo para usar"nginx"Como equilibrador de carga y proxy inverso. Para este propósito, hemos especificado las instrucciones enumeradas en el archivo:

  • "ascenso todo"Define los servicios ascendentes. Aquí, hemos definido el "webSe espera que el servicio se exponga en el puerto 8080.
  • En el "servidor"Brackets, hemos proporcionado el puerto de escucha del equilibrador de carga Nginx"8080"Y definió el poder"http: // all/"Para administrar el servicio aguas arriba:
usuario nginx;
eventos
Worker_Connections 1000;

http
aguas arriba todos
Web del servidor: 8080;

servidor
Escucha 8080;
ubicación /
proxy_pass http: // all/;


Paso 4: Escala el servicio y enciende los contenedores

A continuación, escala y comience el servicio utilizando el "-escalaOpción "con el"Docker-compuesto" dominio. Por ejemplo, hemos comenzado las dos réplicas del "web" servicio:

Docker -compuesto up -scale web = 2

Después de eso, navegue por el servicio Nginx que exponga el puerto y verifique si esto está aceptando la transmisión del "web"Servicio o no. Actualice la página para cambiar entre las salidas de servicios de escala o réplicas utilizando el "nginxBalancador de carga:

Esto se trata de cómo escalar un contenedor Docker usando NGINX como un equilibrador de carga y proxy inverso.

Conclusión

Para escalar el contenedor Docker utilizando el Nginx como un equilibrador de carga y un proxy inverso, primero configure los servicios en el archivo de composición. Entonces, crea un "nginx.confusión"Archivo y agregue instrucciones para el servicio ascendente, el puerto de escucha del equilibrador de carga, y pase el proxy para ascender el servicio. Después de eso, especifique el "nginx"Servicio en el"compuesto de acopolador.YML"Archivo que actúa como un equilibrador de carga. Este artículo ha demostrado cómo escalar contenedores Docker utilizando NGINX como equilibrador de carga.