Comme de nombreux administrateurs système l'ont appris au fil des ans, s'assurer qu'un système est hautement disponible est crucial pour une opération de production. La gestion et la maintenance d'un équilibreur de charge peuvent souvent être une tâche difficile. DigitalOcean propose un Équilibreur de charge produit pour seulement 10 $ / mois qui simplifie considérablement la tâche de gestion et de maintenance d'un équilibreur de charge.
Quelles sont les fonctionnalités de DigitalOcean Load Balancer? De nombreuses options sont disponibles qui peuvent influencer le fonctionnement et les performances de l'équilibreur de charge.
- Équilibreurs de charge redondants – Configurés avec basculement automatique
- Ajouter des ressources par nom ou par tag
- Protocoles pris en charge: HTTP (s), HTTP / 2, TCP
- Certificats SSL LetsEncrypt (si DigitalOcean est votre fournisseur DNS)
- Prise en charge du protocole PROXY
- Sessions collantes via les cookies
- Vérifications de l'état des gouttelettes de backend configurables
- Algorithme: Round Robin ou Least Connections
- Redirection SSL pour forcer tout HTTP à HTTPS
- Backend Keepalive pour les performances
Limites des équilibreurs de charge DigitalOcean
Il existe un certain nombre de limitations aux équilibreurs de charge DigitalOcean dont il faut être conscient.
- Les connexions entrantes ne prennent en charge que TLS 1.2, mais les connexions aux droplets prennent en charge TLS 1.1 et TLS 1.2
- Pas de support pour IPv6
- SSL passthrough ne prend pas en charge les en-têtes, tels que
X-Forwarded-Proto
ouX-Forwarded-For
, car cela ne fonctionne que pour HTTP ou HTTPS avec un certificat - Les sessions persistantes ne sont pas visibles au-delà de l'équilibreur de charge, les cookies sont définis et supprimés au bord et ne sont pas transmis
- Lorsque la fonction Keep-Alive est activée, il y a une limite de temps de 60 secondes
- Les équilibreurs de charge prennent en charge 10000 connexions simultanées réparties entre toutes les ressources (c'est-à-dire 5000 à deux gouttelettes différentes)
- Les vérifications de l'état sont envoyées en tant que HTTP 1.0
- Les adresses IP flottantes ne peuvent pas être attribuées aux équilibreurs de charge
- Port
50053
à50055
sont réservés à l'équilibreur de charge - Let’s Encrypt est uniquement pris en charge lorsque DigitalOcean est utilisé comme DNS
- Let’s Encrypt on Load Balancers ne prend pas en charge les certificats génériques
Créer un équilibreur de charge
Après avoir choisi de créer un nouvel équilibreur de charge, il est nécessaire de choisir la région dans laquelle l'équilibreur de charge sera créé et colocalisé avec les gouttelettes pour équilibrer la charge. L'équilibrage de charge ne fonctionne pas sur différentes régions de centre de données, donc toutes les gouttelettes doivent être situées ensemble.
Ensuite, nous devons définir les ressources à ajouter à l'équilibreur de charge. La meilleure façon de procéder consiste à utiliser des balises, car toute nouvelle ressource balisée sera ensuite ajoutée à l'équilibreur de charge. Comme il existe une limite de 10 gouttelettes qui peuvent être ajoutées individuellement, l'utilisation de balises est un excellent moyen de contourner cette limite car elle ne limite pas le nombre de gouttelettes à ajouter.
Après avoir ajouté des ressources, il est nécessaire de créer toutes les règles de transfert de trafic nécessaires. Dans cet exemple, nous utilisons simplement un serveur Web standard et un trafic non SSL. Par conséquent, tout ce dont nous avons besoin est une règle simple pour transférer vers le port 80.
Il existe des paramètres avancés que vous pouvez définir, mais ils peuvent également être modifiés ultérieurement, si nécessaire. Ces paramètres concernent l'algorithme, les sessions permanentes, les vérifications de l'état, la redirection SSL, la prise en charge du protocole proxy et si Backend Keepalive est activé.
Enfin, choisissez un nom pour l'équilibreur de charge et cliquez sur Créer un équilibreur de charge.
Une fois l'équilibreur de charge créé, vous pouvez naviguer pour voir les ressources affectées et leur état. Si vous avez appliqué des pare-feu aux Droplets, assurez-vous que vous avez ouvert les ports entrants appropriés pour permettre aux vérifications de l'état de fonctionner.
Pour voir que cela fonctionne, accédez d'abord à l'adresse IP de chaque Droplet. Dans ce cas, nous avons simplement installé Nginx et créé un index.html
déposer dans / var / www / html
qui a un texte d'identification pour chaque serveur.
Comme vous pouvez le voir, chaque serveur affiche le texte correct que nous attendons. Nous voulons maintenant tester ce qui se passe lorsque nous accédons à l'adresse IP de l'équilibreur de charge lui-même. Après plusieurs rechargements, vous verrez que les deux pages apparaîtront sur la même adresse IP au fur et à mesure que les connexions sont acheminées entre les Droplets associés.
État de la connexion backend
Les vérifications de la connexion d'intégrité s'exécutent constamment en fonction de la planification définie. Dès qu'un droplet backend est déterminé comme ne fonctionnant pas, l'équilibreur de charge arrête de diriger les connexions vers le droplet backend rompu.
Comme vous pouvez le voir dans la capture d'écran ci-dessous, après avoir éteint test lc-02
, l'équilibreur de charge a arrêté d'y diriger les connexions. Lors de l'actualisation de la page, tout ce que vous obtiendrez est la page du serveur de test 1.
Conclusion
Comme vous pouvez le voir, les équilibreurs de charge DigitalOcean sont un moyen incroyablement utile et peu coûteux pour équilibrer facilement la charge des connexions sur un nombre illimité de gouttelettes. Avec l’ajout de la prise en charge HTTP / 2, le relais et la terminaison SSL, ainsi que la prise en charge de Let’s Encrypt à l’aide des équilibreurs de charge DigitalOcean ajouteront facilement une haute disponibilité et la capacité d’équilibrer la charge à de nombreuses applications.