Úvod
HAProxy vyrovnávač zátěže . Nástroj pro vyrovnávání zatížení zvládá větší provoz na webu, aby se zabránilo prostojům. Přijímá provoz z internetu nebo vaší interní sítě, vyrovnává zatížení interní služby a poté provoz přesměruje na web.
Výhody použití nástroje pro vyrovnávání zatížení po nasazení na více serverů. Nástroj pro vyrovnávání zátěže může přenášet provoz za účelem zvýšení vaší kapacity pro obsluhu mnoha klientů bez přímého připojení ke každému serveru. HAProxy přijímá a předává provoz a poté vyrovnává zatížení přes vaše servery. Tato technika se zajišťuje proti selhání kteréhokoli z vašich serverů, protože nástroj pro vyrovnávání zátěže dokáže zjistit, zda server přestane reagovat, a automaticky zastaví odesílání provozu. HAProxy se používá k vyvážení provozu libovolného počtu webových aplikací pomocí jediné konfigurace.
HAProxy je nejrychlejší a nejrozšířenější nástroj pro vyrovnávání zatížení a řadič doručování aplikací. Napsáno v C, efektivní využití procesoru a paměti. Může běžet na vrstvě 4 (TCP) nebo vrstvě 7 (HTTP) a další funkce pro kontrolu, směrování a úpravu zpráv.
Je dodáván s webovým uživatelským rozhraním nazvaným stránka HAProxy Stats, kterou můžete použít ke sledování chybovosti, objemu provozu a latence. Kromě toho aktualizuje jeden konfigurační soubor, který poskytuje syntaxi pro definování pravidel směrování, omezení rychlosti, řízení přístupu atd.
Chcete-li zaručit skutečně spolehlivou službu, spusťte alespoň dvě instance HAProxy s nastavením aktivní-aktivní nebo aktivní-pohotovostní režim. Přečtěte si oficiální dokumenty, jak pracovat s HAProxy Enterprise. Podívejte se na výukový program kontejneru Apache.
Při konfiguraci HAProxy obvykle začněte s následujícím:
- Konkrétní IP adresy a porty HAProxy pro příjem provozu;
- Servery, na které bude HAProxy přenášet provoz;
- Když klient požaduje přejít do fondu serverů.
Mezi další funkce patří:
- Ukončení SSL/TLS
- Komprese Gzip
- Kontrola stavu
- HTTP/2
- Podpora gRPC
- Lua skriptování
- Zjištění služby DNS
- Automatické opakování neúspěšných připojení
- Podrobné protokolování
Tyto kontejnery naslouchají na portu 8080, ale tyto porty jsme nenamapovali na hostitele, takže je nelze směrovat. Místo toho přeneseme provoz do těchto kontejnerů prostřednictvím nástroje pro vyrovnávání zatížení HAProxy. Dále před ně přidáme HAProxy. Vytvořte soubor s názvem haproxy.cfg v aktuálním adresáři a přidejte do něj následující:
Získat obrázek HAProxy
# podman pull haproxytech/haproxy-alpine:2.4
Vytvořte vlastní obrázek pro svůj požadavek HAProxy
# mkdir -p /haproxy/etc/haproxy/
# cd /haproxy/etc/haproxy/
# ls
Dockerfile haproxy.cfg
Vytvořte si obrázek Dockeru podle svých požadavků
# cat /haproxy/etc/haproxy/Dockerfile
FROM haproxytech/haproxy-alpine:2.4
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
Vytvořte konfiguraci haproxy dle vlastního výběru
# 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
Vytvořte haproxový obrázek
# cd /haproxy/etc/haproxy/
# podman build -t my-haproxy .
Vytvoření serveru HAproxy
# podman run --name haproxy-server -p 80:80 -p 8404:8404 -d localhost/my-haproxy
Vytvořit pod pro každý webový server
Servery 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
Závěr
HAProxy uvnitř kontejneru může zjednodušit jeho nasazení a správu životního cyklu. Poskytuje standard pro nasazování aplikací, díky čemuž je proces opakovatelný a testovatelný. Režie CPU při běhu je zanedbatelná, může zatížit další síť a bude mít dopad v závislosti na vašem případu použití a potřebách propustnosti.
Jednoduše vytvořte konfigurační soubor HAProxy a poté zavolejte příkaz podman run se jménem obrazu HAProxy. HAProxy Technologies dodává aktuální obrázky.
HAProxy Enterprise pohání moderní aplikace v jakémkoli měřítku a v jakémkoli prostředí a poskytuje maximální výkon, pozorovatelnost a zabezpečení pro vaši kritickou pomoc. Můžete využít jeho špičkové funkce a podnikovou sadu doplňků, které jsou podporovány autoritativní, odbornou podporou a profesionálními službami.