GNU/Linux >> Linux Esercitazione >  >> Linux

Contenitore per server HAProxy Podman veloce 100% facile

Introduzione

HAProxy un bilanciatore del carico . Un sistema di bilanciamento del carico gestisce più traffico web per evitare tempi di inattività. Riceve il traffico da Internet o dalla rete interna che bilancia il carico di un servizio interno e quindi inoltra il traffico al Web.

I vantaggi dell'utilizzo di un servizio di bilanciamento del carico una volta distribuito su più server. Il sistema di bilanciamento del carico può inoltrare il traffico per aumentare la capacità di servire numerosi client senza connettersi direttamente a ciascun server. HAProxy riceve e inoltra il traffico e quindi bilancia il caricare sui tuoi server. Questa tecnica protegge da eventuali guasti dei server poiché il sistema di bilanciamento del carico può rilevare se un server non risponde e interrompe automaticamente l'invio del traffico. HAProxy viene utilizzato per bilanciare il traffico verso un numero qualsiasi di applicazioni Web utilizzando un'unica configurazione.

HAProxy è il sistema di bilanciamento del carico e controller di distribuzione delle applicazioni più veloce e più utilizzato. Scritto in C, processore efficiente e uso della memoria. Può essere eseguito a livello 4 (TCP) o livello 7 (HTTP) e funzionalità aggiuntive per l'ispezione, il routing e la modifica dei messaggi.

Viene fornito in bundle con un'interfaccia utente Web denominata pagina HAProxy Stats che è possibile utilizzare per monitorare i tassi di errore, il volume del traffico e la latenza. Inoltre, aggiorna un unico file di configurazione, che fornisce una sintassi per definire regole di instradamento, limiti di velocità, controlli di accesso, ecc.

Per garantire un servizio veramente affidabile, eseguire almeno due istanze di HAProxy con una configurazione attivo-attivo o attivo-standby. Scopri come fare con HAProxy Enterprise leggendo i documenti ufficiali. Controlla il tutorial sull'Apache del contenitore.

Quando si configura HAProxy, in genere iniziare con quanto segue:

  • Indirizzi IP specifici e porte HAProxy per ricevere il traffico;
  • Server a cui HAProxy trasmetterà il traffico;
  • Quando un client richiede di passare a un pool di server.

Altre caratteristiche includono:

  • Terminazione SSL/TLS
  • Compressione Gzip
  • Controllo dello stato di salute
  • HTTP/2
  • Supporto gRPC
  • Scripting Lua
  • Scoperta del servizio DNS
  • Nuovi tentativi automatici di connessioni non riuscite
  • Registrazione dettagliata

Questi contenitori sono in ascolto sulla porta 8080, ma non abbiamo mappato quelle porte sull'host, quindi non sono instradabili. Invieremo invece il traffico a questi container tramite il sistema di bilanciamento del carico HAProxy. Quindi, aggiungiamo HAProxy davanti a loro. Crea un file denominato haproxy.cfg nella directory corrente e aggiungi quanto segue:

Ottieni l'immagine HAProxy

# podman pull haproxytech/haproxy-alpine:2.4

Crea un'immagine personalizzata per il tuo requisito HAProxy

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

Crea un'immagine Docker per le tue esigenze

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

Crea una configurazione haproxy a tua scelta

# 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

Costruisci l'immagine haproxy

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

Crea il server HAproxy

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

Crea pod per ogni server web

Server 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

Conclusione

HAProxy all'interno di un container può semplificarne l'implementazione e la gestione del ciclo di vita. Fornisce uno standard per la distribuzione delle applicazioni, rendendo il processo ripetibile e testabile. Il sovraccarico della CPU dell'esecuzione è trascurabile, può comportare una rete aggiuntiva, l'impatto dipende dal caso d'uso e dalle esigenze di velocità effettiva.

A creare semplicemente un file di configurazione HAProxy e quindi chiamare il comando podman run con il nome dell'immagine HAProxy. HAProxy Technologies fornisce immagini aggiornate.

HAProxy Enterprise alimenta le applicazioni moderne su qualsiasi scala e in qualsiasi ambiente, offrendo le massime prestazioni, osservabilità e sicurezza per la tua assistenza critica. Puoi sfruttare le sue funzionalità all'avanguardia e la suite aziendale di componenti aggiuntivi, che sono supportati da un supporto autorevole ed esperto e servizi professionali.


Linux
  1. Esecuzione di Podman senza root come utente non root

  2. Anteprima della tecnologia:esecuzione di un contenitore all'interno di un contenitore

  3. Come usare Podman all'interno di un contenitore

  4. Come configurare il servizio di bilanciamento del carico HAProxy

  5. Come configurare un server KVM in modo rapido

Come installare HAProxy su CentOS 7

3 semplici modi per riavviare Ubuntu Server

Come configurare HAProxy su CentOS 8

Installa Jupyterlab su Ubuntu - Facile e veloce

Grafana con AWS CloudWatch:facile e veloce!

Installa Ubuntu Server 18.04 LTS - Facile guida passo passo