how-to-install-and-manage Help

HaProxy

HAProxy (High Availability Proxy) est un logiciel open source reconnu pour sa robustesse en matière de répartition de charge (load balancing) et de proxy inverse (reverse proxy). Il est capable de distribuer intelligemment le trafic réseau entre plusieurs serveurs backend afin d’optimiser les performances, d’assurer une haute disponibilité et de garantir la continuité des services.

Architecture

Nous avons choisi d’installer HaProxy sur notre VPS Saphire afin qu’il serve de load balancer pour accéder au cluster kubernetes et au cluster Garage (stockage S3).

Environnement

Le VPS Saphire est sous l'OS NixOS (voir section Netbox pour l'installation et configuration).

Configuration

Dans le NixOS options on cherche les options du package HaProxy afin de trouver comment ajouter la configuration. Voici la structure à adopté pour activer le service et ajouter une configuration :

config, pkgs, ... }: { services.haproxy = { enable = true; config = '' ''; }; }

Cluster Kubernetes

config = '' # Load balancer pour l'API Kubernetes frontend kube-api bind IP_HOST:6443 mode tcp default_backend kube-masters backend kube-masters mode tcp balance roundrobin option tcp-check server k3s-uranium IP_K3S_URANIUM:6443 check server k3s-plutonium IP_K3S_PLUTONIUM:6443 check server k3s-titanium IP_K3S_TITANIUM:6443 check # Load balancer pour les applications Kubernetes (HTTP/HTTPS) frontend kube-loadbalancer bind IP_HOST:80 bind IP_HOST:443 mode http default_backend kube-loadbalancer-servers backend kube-loadbalancer-servers mode http balance roundrobin # option httpchk GET /healthz http-check expect status 200 server k3s-uranium IP_K3S_URANIUM:80 check server k3s-plutonium IP_K3S_PLUTONIUM:80 check server k3s-titanium IP_K3S_TITANIUM:80 check '';

Cluster S3

Comparé à Kubernetes, nous utilisons l'adresse ip Netbird pour ne pas l'exposer sur internet.

config = '' # Load balancer pour s3 frontend s3 bind IP_NETBIRD_HOST:3900 mode tcp default_backend garage-s3 backend garage-s3 mode tcp balance roundrobin option tcp-check server garage-uranium IP_GARAGE_URANIUM:3900 check server garage-plutonium IP_GARAGE_PLUTONIUM:3900 check server garage-titanium IP_GARAGE_TITANIUM:3900 check '';
Last modified: 30 April 2025