GNU/Linux >> LINUX-Kenntnisse >  >> Linux

HAProxy Server Container Podman schnell 100% einfach

Einführung

HAProxy ist ein Load Balancer . Ein Load Balancer verarbeitet mehr Webverkehr, um Ausfallzeiten zu vermeiden. Es empfängt Datenverkehr aus dem Internet oder Ihrem internen Netzwerk, das einen internen Dienst ausgleicht, und leitet den Datenverkehr dann an das Internet weiter.

Die Vorteile der Verwendung eines Load Balancers, sobald er auf mehreren Servern bereitgestellt wurde. Der Load Balancer kann den Datenverkehr weiterleiten, um Ihre Kapazität zu erweitern, um zahlreiche Clients zu bedienen, ohne sich direkt mit jedem Server zu verbinden. HAProxy empfängt und leitet Datenverkehr weiter und balanciert die Ladung über Ihre Server. Diese Technik schützt vor einem Ausfall Ihrer Server, da der Load Balancer erkennen kann, wenn ein Server nicht mehr reagiert, und das Senden von Datenverkehr automatisch stoppt. HAProxy wird verwendet, um den Datenverkehr zu einer beliebigen Anzahl von Webanwendungen mit einer einzigen Konfiguration auszugleichen.

HAProxy ist der schnellste und am weitesten verbreitete Load Balancer und Application Delivery Controller. Geschrieben in C, effiziente Prozessor- und Speichernutzung. Es kann entweder auf Layer 4 (TCP) oder Layer 7 (HTTP) ausgeführt werden und bietet zusätzliche Funktionen zum Untersuchen, Weiterleiten und Ändern von Nachrichten.

Es ist mit einer Web-Benutzeroberfläche namens HAProxy Stats-Seite gebündelt, mit der Sie Fehlerraten, Verkehrsaufkommen und Latenz überwachen können. Darüber hinaus aktualisiert es eine einzige Konfigurationsdatei, die eine Syntax zum Definieren von Routing-Regeln, Ratenbegrenzung, Zugriffskontrollen usw. bereitstellt.

Um einen wirklich zuverlässigen Dienst zu gewährleisten, führen Sie mindestens zwei Instanzen von HAProxy mit einem Aktiv-Aktiv- oder Aktiv-Standby-Setup aus. Erfahren Sie, wie Sie mit HAProxy Enterprise umgehen, indem Sie die offiziellen Dokumente lesen. Sehen Sie sich das Container-Apache-Tutorial an.

Beginnen Sie bei der Konfiguration von HAProxy normalerweise mit Folgendem:

  • Spezifische IP-Adressen und Ports HAProxy zum Empfangen von Datenverkehr;
  • Server, an die HAProxy den Datenverkehr weiterleitet;
  • Wenn ein Client anfordert, zu einem Serverpool zu wechseln.

Weitere Funktionen sind:

  • SSL/TLS-Beendigung
  • Gzip-Komprimierung
  • Zustandsprüfung
  • HTTP/2
  • gRPC-Unterstützung
  • Lua-Skripting
  • DNS-Diensterkennung
  • Automatische Wiederholungsversuche bei fehlgeschlagenen Verbindungen
  • Ausführliche Protokollierung

Diese Container lauschen auf Port 8080, aber wir haben diese Ports nicht dem Host zugeordnet, sodass sie nicht geroutet werden können. Stattdessen leiten wir den Datenverkehr über den HAProxy-Load-Balancer an diese Container weiter. Als nächstes fügen wir HAProxy vor ihnen hinzu. Erstellen Sie eine Datei namens haproxy.cfg im aktuellen Verzeichnis und fügen Sie ihr Folgendes hinzu:

Holen Sie sich das HAProxy-Image

# podman pull haproxytech/haproxy-alpine:2.4

Erstellen Sie ein benutzerdefiniertes Image für Ihre HAProxy-Anforderung

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

Erstellen Sie ein Docker-Image für Ihre Anforderungen

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

Erstellen Sie eine Haproxy-Konfiguration Ihrer Wahl

# 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

Erstellen Sie das Haproxy-Image

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

Erstellen Sie den HAproxy-Server

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

Pod für jeden Webserver erstellen

Apache-Server

# 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

Schlussfolgerung

HAProxy innerhalb eines Containers kann dessen Bereitstellung und Lebenszyklusverwaltung vereinfachen. Bietet einen Standard für die Bereitstellung von Anwendungen und macht den Prozess wiederholbar und testbar. Der CPU-Overhead der Ausführung ist vernachlässigbar, es kann zusätzliches Netzwerk verursachen, die Auswirkungen hängen von Ihrem Anwendungsfall und Ihren Durchsatzanforderungen ab.

Erstellen Sie einfach eine HAProxy-Konfigurationsdatei und rufen Sie dann den Befehl podman run mit dem Namen des HAProxy-Images auf. HAProxy Technologies liefert aktuelle Bilder.

HAProxy Enterprise unterstützt moderne Anwendungen in jeder Größenordnung und in jeder Umgebung und bietet höchste Leistung, Beobachtbarkeit und Sicherheit für Ihre kritische Unterstützung. Sie können die hochmodernen Funktionen und die Enterprise-Suite von Add-Ons nutzen, die durch maßgeblichen Expertensupport und professionelle Services unterstützt werden.


Linux
  1. Rootless Podman als Nicht-Root-Benutzer ausführen

  2. Technologievorschau:Ausführen eines Containers in einem Container

  3. So verwenden Sie Podman in einem Container

  4. So konfigurieren Sie den HAProxy-Load-Balancer

  5. So richten Sie schnell einen KVM-Server ein

So installieren Sie HAProxy unter CentOS 7

3 einfache Möglichkeiten zum Neustart von Ubuntu Server

So richten Sie HAProxy unter CentOS 8 ein

Installieren Sie Jupyterlab auf Ubuntu - schnell und einfach

Grafana mit AWS CloudWatch:Einfach &schnell!

Installieren Sie Ubuntu Server 18.04 LTS - Einfache Schritt-für-Schritt-Anleitung