Introduzione
L'istanza CPU singola preconfigurata phoenixNAP Bare Metal Cloud è una soluzione ideale per il bilanciamento del carico. Un sistema di bilanciamento del carico software non richiede hardware impegnativo e l'istanza BMC più economica è più che sufficiente per iniziare.
Questo tutorial spiega un esempio di configurazione per un sistema di bilanciamento del carico sull'istanza del server BMC s0.d1.small di phoenixNAP.
Prerequisiti
- Un account Bare Metal Cloud (BMC).
- Accesso alla riga di comando/terminale con privilegi sudo.
- Accesso al browser con una connessione Internet stabile.
Cos'è il bilanciamento del carico?
Il bilanciamento del carico distribuisce elevati volumi di traffico su più server, assicurando che nessuna singola istanza venga sovraccaricata. L'obiettivo finale del bilanciamento del carico è l'efficienza complessiva dell'elaborazione e una migliore esperienza utente.
Il sistema di bilanciamento del carico monitora lo stato del server back-end e garantisce richieste e gestione delle risorse del server ottimali. Ad esempio, i sistemi di bilanciamento del carico aiutano a reindirizzare il traffico quando un server non può ricevere una richiesta.
Istanza S.0 BMC come sistema di bilanciamento del carico
I bilanciatori del carico basati su software sono facili da configurare su un server BMC come processo Linux. Ad esempio, l'utilità del server HAproxy è semplice da installare e configurare come sistema di bilanciamento del carico su un'istanza BMC.
L'impostazione ha la seguente struttura:
- La piccola istanza BMC funge da bilanciamento del carico.
- I tre server di test fungono da server farm.
Segui le istruzioni per configurare un'applicazione Web locale di esempio con un servizio di bilanciamento del carico.
Passaggio 1:Genera chiavi SSH
Genera una coppia di chiavi sulla macchina che utilizzerai per connetterti a BMC tramite SSH. Salta questo passaggio se sul portale BMC è presente una chiave salvata che desideri utilizzare.
1. Apri il terminale (CTRL +ALT +T ).
2. Genera una nuova chiave SSH:
ssh-keygen
Il comando avvia il processo di keygen.
3. Seguire i passaggi per creare la coppia di chiavi. Se ci sono chiavi esistenti che vuoi mantenere salvate in id_rsa , cambia il nome della chiave. Altrimenti, premi Invio per scegliere la posizione predefinita e sovrascrivere le chiavi esistenti.
Aggiungi una passphrase per maggiore sicurezza.
Al termine del processo, l'output stampa la posizione della coppia di chiavi e l'immagine randomart.
4. Apri id_rsa.pub file utilizzando Vi:
sudo vi ~/.ssh/id_rsa.pub
5. Copia il contenuto del file ed esci dall'editor:
:q
Il passaggio seguente utilizza id_rsa.pub contenuti.
Passaggio 2:distribuisci un'istanza BMC s0.d1.small e connettiti tramite SSH
1. Accedere al portale BMC utilizzando le credenziali del portale client phoenixNAP.
2. Fare clic su Distribuisci nuovo server sui Server pagina.
3. Seleziona la Posizione per il server nella prima sezione. Scegli un modello di fatturazione subito dopo.
4. Seleziona s0.d1.small Istanza BMC dal Server sezione.
5. Scegliere un sistema operativo nella sezione seguente. Stiamo usando Ubuntu Bionic . Premi Avanti per passare alla pagina Dettagli istanza.
6. Immettere il nome host e una descrizione facoltativa per il server.
7. Se hai generato una nuova chiave nella sezione precedente, fai clic su Aggiungi una nuova chiave SSH pubblica e incolla il id_rsa.pub contenuti per aggiungere una nuova chiave. Se hai una chiave salvata sul portale, digita il nome della chiave salvata e selezionalo dall'elenco.
8. Acquista l'allocazione IP o assegna un'allocazione esistente. Per testare questa guida, è necessario un IP pubblico, il che rende /31 Allocazione IP il requisito minimo.
9. Rivedi i dettagli ancora una volta e fai clic su Distribuisci nuovo server pulsante per completare il processo quando sei pronto.
10. Digitare il nome host per individuare l'istanza BMC e fare clic sul nome per visualizzare i dettagli del server. Il server è pronto quando lo stato viene visualizzato come Acceso .
L'IP assegnato è negli IP pubblici sezione sui Dettagli del server pagina.
Usa gli indirizzi per il passaggio successivo.
10. SSH nella macchina eseguendo il seguente comando nel terminale:
ssh [email protected]<your public IP>
Se l'output chiede di confermare l'autenticità, digita yes per aggiungere la posizione a host conosciuti e connettersi al server BMC.
Fase 3:Installa HAProxy
1. Aggiungi il repository HAProxy:
sudo add-apt-repository ppa:vbernat/haproxy-1.8
2. Premi Invio quando viene chiesto di aggiungere il repository.
3. Al termine del processo, aggiorna i pacchetti:
sudo apt-get update
4. Infine, installa HAProxy con:
sudo apt-get install haproxy
Fase 4:crea server Web di prova
1. Crea tre directory che fungeranno da server:
mkdir server{1..3}
2. Crea una pagina di destinazione per ogni server:
touch server{1..3}/index.html
3. Modifica ogni index.html file:
sudo vi server1/index.html
4. Aggiungi i seguenti contenuti:
<!DOCTYPE html>
<html>
<title>Server 1</title>
<body>Connected!</body>
</html>
5. Aggiungi gli stessi contenuti a server2/index.html e server3/index.html . Modifica il contenuto dei tag del titolo in Server 2
e Server 3
rispettosamente.
Fase 5:Configurare HAProxy Load Balancer
1. Modificare la configurazione predefinita per HAProxy:
sudo vi /etc/haproxy/haproxy.cfg
2. Elimina tutto dal file e aggiungi i seguenti contenuti:
defaults
mode http
timeout client 10s
timeout connect 5s
timeout server 10s
timeout http-request 10s
frontend myfrontend
bind 127.0.0.1:80
default_backend myservers
backend myservers
balance roundrobin
server server1 127.0.0.1:8000
server server2 127.0.0.1:8001
server server3 127.0.0.1:8002
Il file di configurazione ha tre sezioni:
defaults
sono le impostazioni condivise definite in tutte le sezioni seguenti. La sezione imposta i tempi di attesa per evitare problemi di connessione comuni.frontend
definisce l'indirizzo e la porta in cui HAProxy riceve le richieste. Ildefault_backend
punti di linea dove il sistema di bilanciamento del carico deve inoltrare le connessioni.backend
memorizza gli indirizzi e le porte del server per più server, definiti nel passaggio seguente. L'algoritmo di bilanciamento del carico è impostato su round robin .
3. Salva il file e chiudi:
:wq
4. Riavviare HAProxy per applicare la configurazione:
sudo systemctl restart haproxy
L'output non stampa nulla sulla console.
Passaggio 6:esegui i server e verifica il bilanciamento del carico
1. Apri altre tre schede del terminale e accedi al server:
ssh [email protected]<your public IP>
Ora ci sono quattro schede del terminale aperte.
2. In ogni scheda, vai alle cartelle del server:
cd server1
cd server2
cd server3
3. Eseguire il server di prova in ciascuna scheda del terminale su una porta diversa:
python3 -m http.server 8000 --bind 127.0.0.1
python3 -m http.server 8001 --bind 127.0.0.1
python3 -m http.server 8002 --bind 127.0.0.1
4. Nella quarta scheda, verifica la connessione utilizzando curl
:
curl 127.0.0.1:80
Esegui il comando altre due volte per verificare che il servizio di bilanciamento del carico funzioni correttamente.
L'algoritmo di bilanciamento del carico round robin assicura che le richieste vengano indirizzate a ciascun server una volta per bilanciare il carico.
Perché utilizzare S.0 come Load Balancer?
La configurazione di un server S.0 BMC come sistema di bilanciamento del carico è un modo economico per massimizzare la velocità e la capacità delle risorse di un cluster di server.
Alcuni vantaggi dell'utilizzo del server BMC s0.d1.small come sistema di bilanciamento del carico includono:
- Basso costo . L'istanza è l'offerta più piccola ed economica e la configurazione gestisce facilmente il carico di lavoro del sistema di bilanciamento del carico. Paga su base oraria, al mese o effettua una prenotazione estesa a seconda del tuo caso d'uso.
- Efficace gestione del sovraccarico di rete . L'istanza generica viene comunemente utilizzata per i siti Web ad alto traffico e utilizza tutte le risorse in modo equilibrato.
- Maggiore sicurezza e disponibilità elevata . La rete è robusta, veloce, a bassa latenza e affidabile. Inoltre, ogni server è dotato di protezione DDoS a 20 Gbps per garantire la massima disponibilità e sicurezza in caso di attacco.