GNU/Linux >> Tutoriales Linux >  >> Linux

Contenedor de servidor HAProxy Podman rápido 100% fácil

Introducción

HAProxy un equilibrador de carga . Un balanceador de carga maneja más tráfico web para evitar el tiempo de inactividad. Recibe tráfico de Internet o de su red interna equilibrando la carga de un servicio interno y luego reenvía el tráfico a la web.

Los beneficios de usar un balanceador de carga una vez implementado en varios servidores. El equilibrador de carga puede retransmitir el tráfico para aumentar su capacidad de atender a numerosos clientes sin conectarse directamente a cada servidor. HAProxy recibe y reenvía el tráfico y luego salda la carga a través de sus servidores. Esta técnica protege contra la falla de cualquiera de sus servidores, ya que el balanceador de carga puede detectar si un servidor deja de responder y automáticamente deja de enviar tráfico. HAProxy se utiliza para equilibrar el tráfico a cualquier número de aplicaciones web utilizando una única configuración.

HAProxy es el equilibrador de carga y controlador de entrega de aplicaciones más rápido y más utilizado. Escrito en C, procesador eficiente y uso de memoria. Puede ejecutarse en la capa 4 (TCP) o la capa 7 (HTTP) y funciones adicionales para inspeccionar, enrutar y modificar mensajes.

Se incluye con una interfaz de usuario web llamada página de estadísticas de HAProxy que puede usar para monitorear las tasas de error, el volumen de tráfico y la latencia. Además, actualiza un único archivo de configuración, que proporciona una sintaxis para definir reglas de enrutamiento, limitación de velocidad, controles de acceso, etc.

Para garantizar un servicio verdaderamente confiable, ejecute al menos dos instancias de HAProxy con una configuración activa-activa o activa-en espera. Aprenda cómo hacerlo con HAProxy Enterprise leyendo los documentos oficiales. Consulte el tutorial de apache del contenedor.

Al configurar HAProxy, normalmente comience con lo siguiente:

  • Direcciones IP específicas y puertos HAProxy para recibir tráfico;
  • Servidores a los que HAProxy retransmitirá el tráfico;
  • Cuando un cliente solicita ir a un grupo de servidores.

Otras características incluyen:

  • Terminación de SSL/TLS
  • Compresión Gzip
  • Comprobación de estado
  • HTTP/2
  • Compatibilidad con gRPC
  • Secuencias de comandos de Lua
  • Detección de servicios DNS
  • Reintentos automáticos de conexiones fallidas
  • Registro detallado

Estos contenedores escuchan en el puerto 8080, pero no asignamos esos puertos al host, por lo que no se pueden enrutar. En su lugar, retransmitiremos el tráfico a estos contenedores a través del balanceador de carga HAProxy. A continuación, agreguemos HAProxy delante de ellos. Cree un archivo llamado haproxy.cfg en el directorio actual y agregue lo siguiente:

Obtener la imagen HAProxy

# podman pull haproxytech/haproxy-alpine:2.4

Crea una imagen personalizada para tus requisitos de HAProxy

# mkdir -p /haproxy/etc/haproxy/
# cd /haproxy/etc/haproxy/
# ls
Dockerfile haproxy.cfg

Cree una imagen de Docker para sus requisitos

# cat /haproxy/etc/haproxy/Dockerfile
FROM haproxytech/haproxy-alpine:2.4
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

Crea la configuración haproxy de tu elección

# cat /haproxy/etc/haproxy/haproxy.cfg
global
  stats socket /var/run/api.sock user haproxy group haproxy mode 660 level admin expose-fd listeners
  log stdout format raw local0 info

defaults
  mode http
  timeout client 10s
  timeout connect 5s
  timeout server 10s
  timeout http-request 10s
  log global

frontend stats
  bind *:8404
  stats enable
  stats uri /
  stats refresh 10s

frontend myfrontend
  bind :80
  default_backend webservers

backend webservers
  server s1 http-server1:8081 check
  server s2 http-server2:8082 check
  server s3 http-server3:8083 check

Crear la imagen haproxy

# cd /haproxy/etc/haproxy/
# podman build -t my-haproxy .

Crea el servidor HAproxy

# podman run --name haproxy-server -p 80:80 -p 8404:8404 -d localhost/my-haproxy

Crear pod para cada servidor web

Servidores Apache

# podman pull centos/httpd-24-centos7

# podman pod create --name httpapp1 -p 8081:8080 --network bridge
# podman run --pod httpapp1 --name http-server1 -v /wwwdata1:/var/www:Z -d centos/httpd-24-centos7

# podman pod create --name httpapp2 -p 8082:8080 --network bridge
# podman run --pod httpapp2 --name http-server2 -v /wwwdata2:/var/www:Z -d centos/httpd-24-centos7


# podman pod create --name httpapp3 -p 8083:8080 --network bridge
# podman run --pod httpapp3 --name http-server3 -v /wwwdata3:/var/www:Z -d centos/httpd-24-centos7

Conclusión

HAProxy dentro de un contenedor puede simplificar su implementación y gestión del ciclo de vida. Proporciona un estándar para implementar aplicaciones, lo que hace que el proceso sea repetible y comprobable. La sobrecarga de CPU de la ejecución es insignificante, puede generar una red adicional, el impacto depende de su caso de uso y necesidades de rendimiento.

Simplemente cree un archivo de configuración de HAProxy y luego llame al comando de ejecución de podman con el nombre de la imagen de HAProxy. HAProxy Technologies proporciona imágenes actualizadas.

HAProxy Enterprise impulsa las aplicaciones modernas a cualquier escala y en cualquier entorno, brindando el máximo rendimiento, observabilidad y seguridad para su asistencia crítica. Puede aprovechar sus características de vanguardia y su conjunto empresarial de complementos, que están respaldados por servicios profesionales y de soporte autorizados y expertos.


Linux
  1. Ejecutar Podman sin root como usuario no root

  2. Vista previa de la tecnología:ejecución de un contenedor dentro de un contenedor

  3. Cómo usar Podman dentro de un contenedor

  4. Cómo configurar el balanceador de carga HAProxy

  5. Cómo configurar un servidor KVM de forma rápida

Cómo instalar HAProxy en CentOS 7

3 formas sencillas de reiniciar Ubuntu Server

Cómo configurar HAProxy en CentOS 8

Instalar Jupyterlab en Ubuntu:rápido y fácil

Grafana con AWS CloudWatch:¡fácil y rápido!

Instalar Ubuntu Server 18.04 LTS - Guía fácil paso a paso