GNU/Linux >> Tutoriels Linux >  >> Linux

Conteneur de serveur HAProxy Podman rapide 100% facile

Introduction

HAProxy un équilibreur de charge . Un équilibreur de charge gère plus de trafic Web pour éviter les temps d'arrêt. Il reçoit le trafic d'Internet ou de votre réseau interne en équilibrant la charge d'un service interne, puis transfère le trafic vers le Web.

Les avantages d'utiliser un équilibreur de charge une fois déployé sur plusieurs serveurs. L'équilibreur de charge peut relayer le trafic pour augmenter votre capacité à servir de nombreux clients sans vous connecter directement à chaque serveur. HAProxy reçoit et transfère le trafic, puis équilibre la charge sur vos serveurs. Cette technique protège contre la défaillance de l'un de vos serveurs, car l'équilibreur de charge peut détecter si un serveur ne répond plus et arrête automatiquement d'envoyer du trafic. HAProxy est utilisé pour équilibrer le trafic vers n'importe quel nombre d'applications Web à l'aide d'une seule configuration.

HAProxy est l'équilibreur de charge et le contrôleur de livraison d'applications les plus rapides et les plus largement utilisés. Écrit en C, utilisation efficace du processeur et de la mémoire. Il peut s'exécuter au niveau de la couche 4 (TCP) ou de la couche 7 (HTTP) et des fonctionnalités supplémentaires pour l'inspection, le routage et la modification des messages.

Il est fourni avec une interface utilisateur Web appelée la page HAProxy Stats que vous pouvez utiliser pour surveiller les taux d'erreur, le volume de trafic et la latence. De plus, il met à jour un seul fichier de configuration, qui fournit une syntaxe pour définir les règles de routage, la limitation du débit, les contrôles d'accès, etc.

Pour garantir un service vraiment fiable, exécutez au moins deux instances de HAProxy avec une configuration active-active ou active-veille. Apprenez à faire avec HAProxy Enterprise en lisant les documents officiels. Consultez le didacticiel apache du conteneur.

Lors de la configuration de HAProxy, commencez généralement par ce qui suit :

  • Adresses IP et ports HAProxy spécifiques pour recevoir le trafic ;
  • Serveurs vers lesquels HAProxy relaiera le trafic ;
  • Lorsqu'un client demande d'accéder à un pool de serveurs.

Les autres fonctionnalités incluent :

  • Résiliation SSL/TLS
  • Compression Gzip
  • Vérification de l'état
  • HTTP/2
  • Compatibilité gRPC
  • Scripts Lua
  • Découverte du service DNS
  • Tentatives automatiques en cas d'échec des connexions
  • Journalisation détaillée

Ces conteneurs écoutent sur le port 8080, mais nous n'avons pas mappé ces ports sur l'hôte, ils ne sont donc pas routables. Au lieu de cela, nous relayerons le trafic vers ces conteneurs via l'équilibreur de charge HAProxy. Ensuite, ajoutons HAProxy devant eux. Créez un fichier nommé haproxy.cfg dans le répertoire courant et ajoutez-y ce qui suit :

Obtenir l'image HAProxy

# podman pull haproxytech/haproxy-alpine:2.4

Créer une image personnalisée pour votre exigence HAProxy

# mkdir -p /haproxy/etc/haproxy/
# cd /haproxy/etc/haproxy/
# ls
Dockerfile haproxy.cfg

Créer une image Docker pour vos besoins

# cat /haproxy/etc/haproxy/Dockerfile
FROM haproxytech/haproxy-alpine:2.4
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

Créer la configuration haproxy de votre choix

# cat /haproxy/etc/haproxy/haproxy.cfg
global
  stats socket /var/run/api.sock user haproxy group haproxy mode 660 level admin expose-fd listeners
  log stdout format raw local0 info

defaults
  mode http
  timeout client 10s
  timeout connect 5s
  timeout server 10s
  timeout http-request 10s
  log global

frontend stats
  bind *:8404
  stats enable
  stats uri /
  stats refresh 10s

frontend myfrontend
  bind :80
  default_backend webservers

backend webservers
  server s1 http-server1:8081 check
  server s2 http-server2:8082 check
  server s3 http-server3:8083 check

Construire l'image haproxy

# cd /haproxy/etc/haproxy/
# podman build -t my-haproxy .

Créer le serveur HAproxy

# podman run --name haproxy-server -p 80:80 -p 8404:8404 -d localhost/my-haproxy

Créer un pod pour chaque serveur Web

Serveurs Apache

# podman pull centos/httpd-24-centos7

# podman pod create --name httpapp1 -p 8081:8080 --network bridge
# podman run --pod httpapp1 --name http-server1 -v /wwwdata1:/var/www:Z -d centos/httpd-24-centos7

# podman pod create --name httpapp2 -p 8082:8080 --network bridge
# podman run --pod httpapp2 --name http-server2 -v /wwwdata2:/var/www:Z -d centos/httpd-24-centos7


# podman pod create --name httpapp3 -p 8083:8080 --network bridge
# podman run --pod httpapp3 --name http-server3 -v /wwwdata3:/var/www:Z -d centos/httpd-24-centos7

Conclusion

HAProxy à l'intérieur d'un conteneur peut simplifier son déploiement et sa gestion du cycle de vie. Fournit une norme pour le déploiement d'applications, rendant le processus reproductible et testable. La surcharge CPU de l'exécution est négligeable, elle peut entraîner un réseau supplémentaire, son impact dépend de votre cas d'utilisation et de vos besoins en débit.

Créez simplement un fichier de configuration HAProxy, puis appelez la commande podman run avec le nom de l'image HAProxy. HAProxy Technologies fournit des images à jour.

HAProxy Enterprise alimente des applications modernes à n'importe quelle échelle et dans n'importe quel environnement, offrant les meilleures performances, observabilité et sécurité pour votre assistance critique. Vous pouvez exploiter ses fonctionnalités de pointe et sa suite de modules complémentaires d'entreprise, qui s'appuient sur une assistance experte et des services professionnels faisant autorité.


Linux
  1. Exécuter Podman sans racine en tant qu'utilisateur non root

  2. Aperçu technologique :Exécution d'un conteneur à l'intérieur d'un conteneur

  3. Comment utiliser Podman à l'intérieur d'un conteneur

  4. Comment configurer l'équilibreur de charge HAProxy

  5. Comment configurer rapidement un serveur KVM

Comment installer HAProxy sur CentOS 7

3 façons simples de redémarrer le serveur Ubuntu

Comment configurer HAProxy sur CentOS 8

Installer Jupyterlab sur Ubuntu - Rapide et facile

Grafana avec AWS CloudWatch :facile et rapide !

Installer Ubuntu Server 18.04 LTS - Guide étape par étape facile