Ceci est une ancienne révision du document !
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:
Puis, lorsque le service atteint sa fin de vie:
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:
On désigne parfois Traefic d' edge reverse proxy:
Les requêtes sont attrapées par les entrypoints. On configure manuellement les entrypoints disponibles, les ports sur lesquels on souhaite que traefik écoute.
Les requêtes capturées au niveau des entrypoints sont communiquées à des objets désignés routers (anciennement appelés frontends). Les routers intègrent deux fonctions:
Les services, correspondent à la représentation interne que traefik se fait de l'ensemble des backends (les conteneurs présentés via l'API du docker engine). C'est ici qu'opère le service de load balancing
Les administrateurs en charge de la configuration de Traefik modifient ou définissent la configuration statique: les entrypoints, l’interfaçage avec les providers (docker, docker swarm, Kubernettes, Azur Service Fabric Amazon Container Services etc).
La partie dynamique de la configuration est déduite des informations récupérées via les API des providers:
Ce sont les developeurs qui intègrent ces informations directement à leurs services. Les labels sont définis par les deveolppeurs et Trafik sera en mesure d'effectuer le routage dès que les conteneurs seront actifs.
Traefik s'appuie sur une configuration en partie statique et en partie dynamique:
La configuration statique peut être définie dans un fichier de configuration YAML ou via les options --command d'un docker-compose
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