·
2 min de lectura
Traefik
- containers ,
- docker ,
- load balancer ,
- networking ,
- reverse proxy ,
- self hosted ,
- sysadmin
description
Traefik es un moderno proxy inverso y balanceador de carga diseñado para entornos dinámicos y nativos de la nube, destacando especialmente con sistemas de orquestación de contenedores como Docker y Kubernetes. Se configura automáticamente al integrarse con los componentes de infraestructura existentes, eliminando la necesidad de recargas manuales cuando se añaden, eliminan o escalan servicios.
Funcionalidades clave
- Configuración dinámica y descubrimiento de servicios: Detecta y gestiona automáticamente el enrutamiento a nuevos servicios.
- SSL/TLS automático: Maneja la terminación SSL/TLS y obtiene y renueva automáticamente certificados de Let’s Encrypt.
- Balanceo de carga: Distribuye eficientemente las solicitudes entrantes entre múltiples instancias de un servicio.
- Middleware: Soporta componentes de middleware para modificar o mejorar solicitudes y respuestas.
- Métricas y trazado: Proporciona métricas para sistemas como Prometheus y Datadog, y soporta trazado distribuido.
- Interfaz web (Dashboard): Ofrece un panel de control web integrado para monitorear el tráfico y la configuración en tiempo real.
- Soporte de protocolos: Soporta HTTP/2, HTTP/3, WebSockets y gRPC.
Ventajas
- Gestión simplificada: Su configuración dinámica y el descubrimiento automático de servicios simplifican la gestión de sistemas distribuidos complejos.
- Diseño nativo de la nube: Diseñado específicamente para entornos contenerizados y arquitecturas de microservicios.
- Facilidad de uso: Configuración sencilla, especialmente con sistemas de orquestación de contenedores.
- Rendimiento mejorado: Asegura una distribución óptima del tráfico de red.
- Flexibilidad: Amplias opciones de configuración e integración perfecta en diversas plataformas.
Docker compose
services:
traefik:
image: "traefik:v3.5"
container_name: "traefik"
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
ports:
- "80:80"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
whoami:
image: "traefik/whoami"
container_name: "simple-service"
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
- "traefik.http.routers.whoami.entrypoints=web"
Sustituye whoami.localhost por tu dominio con la etiqueta traefik.http.routers.whoami.rule.