Outils pour utilisateurs

Outils du site


sysadmin:docker:traefik:010_exemple_loadbalancing_http

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

sysadmin:docker:traefik:010_exemple_loadbalancing_http [2021/02/06 10:43] – créée 77.192.232.26sysadmin:docker:traefik:010_exemple_loadbalancing_http [2021/02/06 12:23] (Version actuelle) 77.192.232.26
Ligne 1: Ligne 1:
-{{tag>sysadmin netadmin traefik http load_balancing}}+{{tag>sysadmin netadmin dev traefik http load_balancing}}
  
  
-====== Trafik: load balancing http ======+====== Traefikreverse proxy http avec load balancing ======
  
-Un cas d'utilisation simple pour découvrir la mise en place de traefik.+Un cas d'utilisation simple pour découvrir la mise en place de traefik. La configuration proposée ici est une démonstration à ne pas utiliser telle quelle en production. Elle est reproductible dans un environnement de développement/test.
  
  
Ligne 26: Ligne 26:
       # Le port HTTP (point entrant unique des requêtes web)       # Le port HTTP (point entrant unique des requêtes web)
       - "80:80"       - "80:80"
-      # L'interface de gestion Web de Traefik activée via la commande --api.insecure=true+      # L'interface de gestion Web de Traefik autorisée par la commande --api.insecure=true
       - "8080:8080"       - "8080:8080"
     volumes:     volumes:
Ligne 32: Ligne 32:
       - /var/run/docker.sock:/var/run/docker.sock       - /var/run/docker.sock:/var/run/docker.sock
 </file> </file>
 +
 +On peut lancer dès à présent l'exécution de Traefic:
 +<code bash>
 +docker-compose up -d reverse-proxy
 +
 +# Pour vérifier l’état du service
 +docker-compose ps
 +</code>
 +
 +Traefik fournit les informations d'état et de routage via:
 +  * La Web UI http://localhost:8080
 +  * L'API http://localhost:8080/api/rawdata
 +
 +A présent que Traefik est en cours d’exécution, nous pouvons créer un nouveau service, pour cela nous allons ajouter ce service dans le fichier docker-compose.yml
 +
 +<file yml>
 +  whoami:
 +    # micro service minimal affichant quelques attributs de configuration
 +    image: traefik/whoami
 +    labels:
 +      - "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
 +</file>
 +
 +Les quelques lignes ci-dessus déclarent un nouveau service désigné "whoami" qui affiche quelques attributs de configuration concernant le conteneur et l’hôte.
 +
 +Traefik utilise les labels pour le routage du trafic. Ici c'est le nom d'hote ''whoami.localhost'' qui permettra d'aiguiller le flux http entrant vers le service.
 +
 +
 +Pour que la résolution fonctionne, on modifie le fichier /etc/hosts
 +<file>
 +127.0.0.1       localhost
 +127.0.0.1       whoami.localhost
 +</file>
 +
 +Vérifier la résolution du fqdn fonctionne via la commande **host**:
 +<code bash>
 +host whoami.localhost
 +</code>
 +
 +On démarre le service whoami via la commande suivante:
 +<code bash>
 +docker-compose up -d whoami
 +</code>
 +
 +via le navigateur, il est possible d'accéder au nouveau service http://whoami.localhost
 +
 +les informations retournées contiennent notamment l'identifiant du conteneur et son adresse:
 +<file>
 +Hostname: 09ffd0552c70
 +IP: 127.0.0.1
 +IP: 172.18.0.3
 +...
 +</file>
 +
 +Si on supprime et qu'on recrée le service, le routage du trafic fonctionne sans problème car ni le nom (id) du conteneur ni l'IP ne sont utilisés:
 +<code>
 +docker-compose stop whoami
 +docker-compose rm whoami
 +docker-compose up -d whoami
 +</code>
 +
 +
 +<file>
 +Hostname: 80526238d732
 +IP: 127.0.0.1
 +IP: 172.18.0.3
 +...
 +</file>
 +
 +Si on décide d'étendre le service, Traefik sera capable de détecter les différentes instances et répartira automatiquement la charge entre elles:
 +
 +<code bash>
 +docker-compose up -d --scale whoami=4
 +</code>
 +
 +Le rafraîchissement de la page retourne successivement les valeurs de chaque instance:
 +|<file>
 +Hostname: 419c41f3ac37
 +IP: 127.0.0.1
 +IP: 172.18.0.5
 +</file>|<file>
 +Hostname: b13e5f59f4d4
 +IP: 127.0.0.1
 +IP: 172.18.0.4
 +</file>|<file>
 +Hostname: f00e7d8f189b
 +IP: 127.0.0.1
 +IP: 172.18.0.6
 +</file>|<file>
 +Hostname: 80526238d732
 +IP: 127.0.0.1
 +IP: 172.18.0.3
 +</file>|
 +
 +On constate que sans configuration supplémentaire, le load balancing fonctionne à merveille. Traefik détecte les nouveaux conteneurs associés au service "whoami" et réparti les requêtes entrantes entre eux.
 +
  
 ===== Références ===== ===== Références =====
  
   * https://doc.traefik.io/traefik/getting-started/quick-start/   * https://doc.traefik.io/traefik/getting-started/quick-start/
sysadmin/docker/traefik/010_exemple_loadbalancing_http.1612608207.txt.gz · Dernière modification : 2021/02/06 10:43 de 77.192.232.26