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 13:06] – 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 |
| - | Les principales caractéristiques et fonctionnalités | + | * Comment livrer tous les services |
| + | * 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: | ||
| + | |||
| + | | ||
| * Supporte l' | * Supporte l' | ||
| * facile d' | * facile d' | ||
| Ligne 30: | 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 60: | Ligne 80: | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | * [[https:// | ||
| + | * https:// | ||
| + | * https:// | ||