Outils pour utilisateurs

Outils du site


sysadmin:docker:traefik

Ceci est une ancienne révision du document !


Traefik

Historiquement Apache et Nginx on offert le service de reverse proxy pour des applications monolithiques (applications lourdes, déployées une bonne fois pour toute et difficiles à migrer).

Avec l'arrivée du cloud computing, les applications monolithiques ont été réorganisées en services interdépendants/communicants et extensibles(scalable). Pour chaque nouvelle application, on passe généralement par les étapes suivantes:

  • création /développement du service applicatif
  • création des fichiers de configuration (apache ou nginx) pour le déploiement.
  • Génération des certifications SSL.

Puis, lorsque le service atteint sa fin de vie:

  • suppression du service
  • suppression de la configuration
  • suppression du certificat SSL

Trafik est un reverse-proxy dynamique qui permet d'alléger cette boucle d'étapes consécutives. Il simplifie le déploiement de micro-services. Traefik s’intègre à au mode d'orchestration de l'infrastructure existante (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS,etc) et s'auto-configure en grande partie dynamiquement. Faire le lien entre Traefik et l’orchestrateur devrait être la seule étape de configuration à réaliser.

Les principales caractéristiques et fonctionnalités de Traefic:

  • Écrit en GO, distribué sous forme de binaire unique ou via une image Docker.
  • Supporte l'ajout de plugins écrits en Go via un Marketplace (depuis sa version 2.3.0)
  • facile d'utilisation
  • supporte HTTP et HTTPS, TCP
  • Intégration native de Let’s Encrypt pour fournir du chiffrement aux différents services.
  • Supporte plusieurs algorithmes de load-balancing (équilibrage de charge).
  • Interface web pour contrôler la configuration et mise à disposition d’une API Rest.
  • Fournit des métriques (Rest, Prometheus, Datadog, Statsd, InfluxDB) et des logs d’accès (JSON, CLF).

Le lancement de traefik s'appuie sur docker-compose qui permet de gérer plusieurs conteneurs via un fichier de déclaration/configuration mieux adapté à la génération d'un écosystème complexe de services que la simple ligne de commandes.

On désigne parfois Traefic d' edge reverse proxy:

  • edge signifie qu'il se trouve sur l'arrête, la limite ou à la frontière de votre infrastructure. C'est le seul conteneur accessible depuis l’extérieur (l'Internet). Les autre services sont déployés à la la demande et accessible au travers de Traefik.
  • Traefik est configuré pour écouter l'orchestrateur au travers de l'API disponible: il détectes les nouveaux services et crée les routes.
  • Trafik reçoit les requêtes et aiguille le flux vers les bons services.

Dans la commande, l'option --api.insecure permet de démarrer la webUI exposée ensuite sur le port 8080.

traefik s'appuie sur les labels pour identifier les services et router les flux entrants vers les bons services.

  labels:
    - traefik.http.routers.client.rule=Host(`fqdn1.com`, `fqdn2.com`)
    - traefik.http.services.client.loadbalancer.port=3000

Références

sysadmin/docker/traefik.1612607162.txt.gz · Dernière modification : 2021/02/06 10:26 de 77.192.232.26