blog.bressure.net

Application, Paramétrage

Migration reverse proxy apache vers HAProxy et Traefik

admin

Afin de simplifier la configuration et permettre l’ajout de serveurs j’ai décidé de remplacer mon reverse proxy apache par le triptyque:

  1. apache pour le TLS
  2. HAProxy pour la répartition inter VM
  3. Traefik pour le routage intra VM vers les conteneurs
Architecture cible

Installation de Traefik

L’utilisation de la version docker de Traefik parait évidente puisque d’une part l’utilisation des versions dockerisées m’a montré que cela fonctionne mieux et souvent du premier coup car toute la configuration d’intégration est faite (mise en conteneur = paquet prêt à l’emploi) et d’autre part Traefix sera utilisé pour faire du routage vers des conteneurs docker !

Dans mon infra, l’installation de Traefik est très simple. Il me suffit de déclarer un nouveau projet dans mon Gitlab en suivant l’exemple dans la documentation de Traefik pour docker. Ce qui donne:

https://gitlab.bressure.net/docker/applications/traefik

Le déploiement des instantes Traefik se fait très simplement en reprenant l’exemple du .gitlab-cy.yml de mes instances prom-node puisque Traefik doit également s’installer sur toutes mes machines où docker se trouve.

Triptyque Apache / Haproxy / Traefik

Sur le schéma on voit que le port d’exposition d’un service n’a pas besoin d’être connu car Traefik va écouter les évènements du démon docker pour associer à un nom d »hôte (nom de service comme blog.bressure.net) à un port exposé où rediriger le flux. Ainsi le haproxy en amont n’a pas besoin de connaître le port d’exposition mais seulement vers quel serveur backend envoyer les flux.

Installation du HAProxy

Le haproxy fera l’objet d’une petit travail de configuration et comme l’image haproxy sur docker hub est vierge de toute configuration initiale, je vais me coller à cette tâche. Pour cela il ne suffit pas créer un projet de type applications (docker-compose) mais je vais avoir également besoin de mettre sous IC la construction d’une image personnalisée avec ma configuration. Donc je crée 2 nouveaux projets dans mon Gitlab:

  1. https://gitlab.bressure.net/docker/applications/haproxy
  2. https://gitlab.bressure.net/docker/services/haproxy

Migration progressive

La configuration de mon reverse proxy apache est sensible car c’est la pierre angulaire de mon infra en traitant le TLS et les redirections vers tous les services (dockerisés ou pas). La migration sera donc également sensible et je souhaite la faire sans interruption ce qui implique qu’elle soit progressive le temps que j’itère pour arriver à un résultat qui me satisfait.

L’objectif final sera également de

La suite au prochain billet.

Tags:

Comments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Back to top