Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
sysadmin:docker:traefik [2021/02/23 19:42] – 93.28.24.141 | sysadmin:docker:traefik [2021/07/30 10:17] (Version actuelle) – [Références] 92.154.112.189 |
---|
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). | 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 micro-services interdépendants/communicants et extensibles(scalable). Un cycle de de vie est associé à chaque micro-service. Pour chaque nouvelle application, on passe généralement par les étapes suivantes: | Avec l'arrivée du cloud computing, les applications monolithiques ont été réorganisées en micro-services interdépendants, communicants et extensibles(scalable). Un cycle de de vie peut ainsi être associé à chaque micro-service. Pour chaque nouvelle application, on passe généralement par les étapes suivantes: |
* création /développement du service applicatif | * création /développement du service applicatif |
* création des fichiers de configuration (apache ou nginx) pour le déploiement. | * création des fichiers de configuration (apache ou nginx) pour le déploiement. |
* Comment livrer tous les services de manière homogène; | * Comment livrer tous les services de manière homogène; |
* Comment tracer journaliser les requêtes; | * Comment tracer journaliser les requêtes; |
* Comment aiguiller une requête externe sur le bon service (c'est à ce niveau qu'intervient Traekik). | * Comment aiguiller une requête externe sur le bon service (c'est à ce niveau qu'intervient Traefik). |
| |
Traefik 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. | Traefik est un reverse-proxy dynamique qui permet d'alléger la boucle des étapes consécutives décrite plus haut. Il simplifie le déploiement de micro-services. Traefik s’intègre au mode d'orchestration de l'infrastructure existante (Docker engine simple ou 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 Traefik: | Les principales caractéristiques et fonctionnalités de Traefik: |
| |
| |
On désigne parfois Traefic d' **edge reverse proxy**: | On désigne parfois Traefik 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. | * **Edge** indique 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/aiguillages. | * Traefik est configuré pour écouter l'orchestrateur au travers de l'API disponible: il détectes les nouveaux services et crée les routes/aiguillages. |
* Trafik reçoit les requêtes et aiguille le flux vers les bons services. | * Trafik reçoit les requêtes et aiguille le flux vers les bons services. |
===== Configuration ===== | ===== Configuration ===== |
| |
Traefik s'appuie sur une configuration en partie statique et en grande partie dynamique: | La configuration de Traefik est détaillée dans le wiki [[sysadmin:docker:traefik:notes_configuration]] |
| |
La configuration statique statique contient la définition des **entrypoints** et les connexions aux **Providers**. Elle peut être définie dans un fichier de configuration YAML ou via les options %%--command%% d'un docker-compose. | ===== Exemples ===== |
| |
| |
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. | |
| |
<file YML> | |
labels: | |
- traefik.http.routers.client.rule=Host(`fqdn1.com`, `fqdn2.com`) | |
- traefik.http.services.client.loadbalancer.port=3000 | |
</file> | |
| |
===== Références ===== | ===== Références ===== |
* [[https://www.youtube.com/watch?v=Da7bWh1CfxA|Présentation de Traefik 2.0 au VOXXED DAYS 2019]] | * [[https://www.youtube.com/watch?v=Da7bWh1CfxA|Présentation de Traefik 2.0 au VOXXED DAYS 2019]] |
* https://www.youtube.com/watch?v=37girhK8PrA | * https://www.youtube.com/watch?v=37girhK8PrA |
| * https://computerz.solutions/docker-compose-traefik/ |