[Traefik](https://traefik.io/traefik/) est un proxy inverse écrit en Go qui supporte la grande majorité des technologies de cluster ([Swarm](/HowtoDocker.md#swarm), [Kubernetes](https://kubernetes.io/), [etc](https://doc.traefik.io/traefik/providers/overview/#supported-providers)).Cela lui permet de trouver automatiquement la configuration des services qui s'exécutent sur un cluster ou "Provider" pour leur transmettre les requêtes qu'il reçoit.
Traefik est une application [Stateless](/Glossaire.md#) qui peut fonctionner en HA (haute disponibilité) en lançant plusieurs instances sur un cluster.
## Installation
Comme Traefik est souvent utilisé pour rendre accessible les services d'un cluster, il est généralement installé sur le cluster lui aussi. pour cela il faudra configurer une stack pour docker swarm ou chart helm pour kubernetes (Voir <https://doc.traefik.io/traefik/getting-started/install-traefik/>).
On peut aussi lancer Traefik directement avec son binaire ou via un conteneur
Traefik récupère [périodiquement](https://doc.traefik.io/traefik/providers/overview/#configuration-reload-frequency) sa configuration (toute les 2 secondes par defaut) depuis le ou les providers configurés.
Liste des providers : https://doc.traefik.io/traefik/providers/overview/
> Remarque : le provider File permet de passer directement de la configuration via un fichier ou un dossier contenant des fichiers, https://doc.traefik.io/traefik/providers/file/#configuration-examples
Dans le cas des providers comme docker et kubernetes, Treafik connaitra déjà les services, on aura seulement à configurer des routers directement dans la définitions des service dans swarm ou kubernetes...
> Remarque : fonctionne seulement pour une "mono-instance". Pour de la gérer les certificats sur un cluster HA, il faut utiliser la version entreprise ou bien utiliser Cert manager(documentation à venir).