Un répartiteur de charge Wolkra distribue le trafic entrant sur plusieurs serveurs et ne l'envoie qu'aux cibles qui réussissent leurs contrôles de santé. Il prend en charge les services couche 4 (TCP) et HTTP, et les cibles peuvent être des serveurs, des sélecteurs d'étiquette ou des adresses IP, y compris des serveurs présents uniquement sur un réseau privé.
Quand en avoir besoin
- Deux serveurs d'application ou plus, pour la capacité ou la redondance.
- Des déploiements sans interruption : retirez un serveur, mettez-le à jour, remettez-le en service.
- Un point d'entrée public stable devant des serveurs privés.
Créer un répartiteur de charge
- Ouvrez Répartiteurs de charge dans la console et choisissez Créer un répartiteur de charge.
- Donnez-lui un nom, par exemple
web-lb. - Rattachez-le si besoin à un réseau privé, pour qu'il puisse atteindre des serveurs uniquement privés.
- Ajoutez des services (ports d'écoute).
- Ajoutez des cibles.
- Configurez les contrôles de santé.
- Créez-le. La console affiche le prix avant votre confirmation.
Services
Un service associe un port du répartiteur de charge à un port des cibles.
| Type | Usage | Exemple |
|---|---|---|
| TCP (couche 4) | tout protocole TCP, TLS en passthrough | 443 → 443 |
| HTTP | applications HTTP simples | 80 → 8080 |
Ajoutez un service par port d'écoute.
Cibles
- Serveurs : choisissez des serveurs individuels.
- Sélecteurs d'étiquette : par exemple
role=web. Les nouveaux serveurs portant l'étiquette rejoignent automatiquement le groupe, et ceux qui la perdent en sortent. Cela fonctionne bien avec des serveurs créés à partir d'un instantané ou via l'API. - Adresses IP : pour les backends identifiés par leur adresse.
Quand le répartiteur de charge est rattaché à un réseau privé, il atteint les cibles par leurs adresses privées : les cibles n'ont alors besoin d'aucune IP publique.
Contrôles de santé
Un contrôle de santé détermine si une cible reçoit du trafic. Configurez :
- Protocole : TCP (le port accepte les connexions) ou HTTP (un chemin renvoie un statut de succès).
- Port et, pour HTTP, un chemin comme
/healthz. - Intervalle, délai d'expiration et nombre de tentatives.
Un point de contrôle de santé minimal derrière Caddy :
:8080 {
respond /healthz "ok" 200
reverse_proxy localhost:3000
}
Faites en sorte que le contrôle de santé reflète la disponibilité réelle. Si l'application a besoin d'une base de données, laissez /healthz échouer quand la base est indisponible, pour que le trafic bascule vers un serveur sain.
HTTPS
Pour HTTPS, ajoutez un service TCP sur le port 443 et terminez le TLS sur les serveurs eux-mêmes, par exemple avec Caddy. Chaque serveur a alors besoin du certificat ; Caddy peut l'obtenir automatiquement, ou vous pouvez le partager entre les serveurs. Ajoutez un service TCP ou HTTP sur le port 80 pour que les challenges de certificat et les redirections atteignent les serveurs. Le guide Caddy couvre la partie serveur, y compris la confiance accordée aux en-têtes transmis.
Pare-feu
Sur les cibles, n'autorisez le port de l'application que depuis l'origine des connexions du répartiteur de charge : la plage du réseau privé s'il y est rattaché. Gardez l'accès SSH restreint comme d'habitude. Voir pare-feu.
Déployer sans interruption
- Retirez l'étiquette du serveur (ou le serveur) des cibles, ou faites-le volontairement échouer au contrôle de santé.
- Attendez la fin des connexions en cours.
- Mettez à jour et redémarrez l'application.
- Remettez l'étiquette et attendez que le contrôle de santé réussisse.
- Recommencez avec le serveur suivant.
Vérifier le fonctionnement
for i in $(seq 1 6); do curl -s http://203.0.113.20/whoami; echo; done # adresse d'exemple
Si chaque serveur répond à /whoami avec son propre nom d'hôte, vous verrez les réponses alterner.
Facturation
Les répartiteurs de charge sont facturés à l'heure entamée et plafonnés au prix mensuel, comme les serveurs. Le trafic qui les traverse n'est pas mesuré. Voir tarifs.
API
Les répartiteurs de charge sont disponibles sur https://api.wolkra.com/v1/load_balancers. Voir jetons d'API.
Plus d'informations sur la page produit : répartiteurs de charge.
Questions fréquentes
Quels types de trafic le répartiteur de charge peut-il gérer ?
Des services couche 4 (TCP) pour n'importe quel protocole, et des services HTTP. Les deux utilisent des contrôles de santé pour n'envoyer le trafic qu'aux cibles en bonne santé.
Les cibles peuvent-elles être des serveurs sans IP publique ?
Oui. Rattachez le répartiteur de charge au même réseau privé : il atteint alors les serveurs uniquement privés via ce réseau.
Comment ajouter automatiquement de nouveaux serveurs ?
Utilisez un sélecteur d'étiquette comme cible, par exemple role=web. Chaque serveur portant cette étiquette devient une cible dès qu'il existe.
Où HTTPS est-il terminé ?
Une approche simple consiste à utiliser un service TCP sur le port 443 qui transmet le TLS tel quel à vos serveurs, où Caddy ou un autre proxy détient les certificats.