Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
sysadmin:docker:traefik [2021/02/05 10:17] – 92.154.112.189 | sysadmin:docker:traefik [2021/07/30 10:17] (Version actuelle) – [Références] 92.154.112.189 | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== Traefik ====== | ====== Traefik ====== | ||
+ | |||
+ | Traefik est un reverse-proxy, | ||
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' | + | Avec l' |
* création / | * création / | ||
* 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. | ||
Ligne 16: | Ligne 18: | ||
* suppression du certificat SSL | * suppression du certificat SSL | ||
- | Trafik est un reverse-proxy dynamique qui permet d' | + | Le paradigme des micros-services résout des problèmes mais en crée des nouveaux: |
- | * Ecrit en GO, distribué sous forme de binaire unique ou via une image Docker. | + | * Comment livrer tous les services de manière homogène; |
+ | * Comment tracer journaliser les requêtes; | ||
+ | * Comment aiguiller une requête externe sur le bon service (c'est à ce niveau qu' | ||
+ | |||
+ | Traefik est un reverse-proxy dynamique qui permet d' | ||
+ | |||
+ | Les principales caractéristiques et fonctionnalités de Traefik: | ||
+ | |||
+ | * Écrit | ||
* Supporte l' | * Supporte l' | ||
* facile d' | * facile d' | ||
Ligne 28: | Ligne 38: | ||
- | prérequis docker-compose: permet | + | On désigne parfois Traefik d' **edge reverse proxy**: |
+ | * **Edge** indique qu'il se trouve sur l' | ||
+ | * Traefik est configuré pour écouter l' | ||
+ | * Trafik reçoit les requêtes et aiguille le flux vers les bons services. | ||
+ | |||
+ | La philosophie de Traefik est de minimiser la configuration manuelle, d' | ||
+ | |||
+ | ===== Architecture Traefik ===== | ||
+ | |||
+ | Les requêtes sont attrapées par les **entrypoints**. On configure manuellement les entrypoints disponibles, | ||
+ | |||
+ | 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 **règles** qui permettent l' | ||
+ | * les **middlewares** qui altèrent la requête avant de la transférer ou la réponse retournée. | ||
+ | |||
+ | Les services, correspondent à la représentation interne que Traefik se fait de l' | ||
+ | |||
+ | Les administrateurs en charge | ||
+ | |||
+ | La partie dynamique de la configuration est déduite des informations récupérées via les API des providers pouvant communiquer les méta-données placées sur les conteneurs/ | ||
+ | * des labels | ||
+ | * des ingres rules de Kubernetes; | ||
+ | * des annotations d'Azur Service Fabric etc | ||
+ | |||
+ | < | ||
+ | Ce sont les développeurs qui intègrent ces informations directement à leurs services. Les labels sont définis par les développeurs et Traefik sera en mesure de les interpréter et d' | ||
+ | </ | ||
+ | |||
+ | Lorsque tout se passe normalement, | ||
- | Exemple de configuration extraite d'un fichier docker-compose déclarant le service traefik | ||
- | <file yml> | ||
- | traefik: | ||
- | image: traefik: | ||
- | command: --api.insecure --providers.docker | ||
- | volumes: | ||
- | - / | ||
- | ports: | ||
- | - " | ||
- | - " | ||
- | - 8080: | ||
- | </ | ||
+ | ===== Configuration ===== | ||
- | Dans la commande, l' | + | La configuration |
- | traefik s' | + | ===== Exemples ===== |
- | <file YML> | ||
- | labels: | ||
- | - traefik.http.routers.client.rule=Host(`fqdn1.com`, | ||
- | - traefik.http.services.client.loadbalancer.port=3000 | ||
- | </ | ||
===== Références ===== | ===== Références ===== | ||
Ligne 58: | Ligne 80: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | * [[https:// | ||
+ | * https:// | ||
+ | * https:// |