Vai al contenuto
⚠️ Warning: Extraordinary electrical maintenance – Scheduled shutdown of the Cloud garr-ct1 region (Catania) from 22 to 29 July 2025. For more details, please read the maintenance notice.

Creare un Load Balancer Openstack

Questa guida mostra come creare e usare un Load Balancer Openstack. Creeremo due VM, un Load Balancer che bilancerà il carico tra queste due VM, e testeremo il Load Balancer con curl.

Crea le VM

Crea due VM nel tuo progetto Openstack tramite la Dashboard o la CLI. Chiamale, per esempio, test-vm-1 e test-vm-2.

Crea un nuovo gruppo di sicurezza che abiliti il traffico di rete sulla porta 80 e associarlo alle VM.

Crea e associa un IP floating a ciascuna VM.

Esegui un server web semplice

Esegui un server web su test-vm-1:

  1. ssh ubuntu@<floating-ip-srv1>
  2. echo "<html>Questo è SERVER 1</html>" > index.html
  3. sudo python3 -m http.server 80 &> /dev/null &

Esegui un server web su test-vm-2:

  1. ssh ubuntu@<floating-ip-srv2>
  2. echo "<html>Questo è SERVER 2</html>" > index.html
  3. sudo python3 -m http.server 80 &> /dev/null &

Crea un nuovo Load Balancer (Openstack CLI)

  1. openstack loadbalancer create --name test-lb --vip-subnet-id <subnet-id>
  2. openstack loadbalancer listener create --name test-listener --protocol HTTP --protocol-port 80 test-lb
  3. openstack loadbalancer pool create --name test-pool --lb-algorithm ROUND_ROBIN --listener test-listener --protocol HTTP
  4. openstack loadbalancer member create --subnet-id <subnet-id> --address <test-vm-1-private-ip> --protocol-port 80 test-pool
  5. openstack loadbalancer member create --subnet-id <subnet-id> --address <test-vm-2-private-ip> --protocol-port 80 test-pool
  6. Ottieni la porta vip del loadbalancer (vip_port_id) -> openstack loadbalancer show test-lb
  7. Crea un nuovo ip floating tramite la Dashboard Openstack o la CLI
  8. Associa l'ip floating precedente alla porta vip del Load Balancer -> openstack floating ip set --port <vip-port-id> <floating-ip>

Crea un nuovo Load Balancer (Openstack Dashboard)

  1. Seleziona Load Balancers dal menu e seleziona + Create Load Balancer.

    image

  2. Dai un nome al nuovo load balancer e seleziona la sottorete (deve essere la stessa sottorete di test-vm-1 e test-vm-2).

    image

  3. Crea un listener e seleziona il protocollo/porta (HTTP/80 nel nostro caso) su cui il load balancer deve ascoltare.

    image

  4. Crea un pool di worker e seleziona un algoritmo di bilanciamento del carico. L'algoritmo scelto determina come il carico di lavoro viene distribuito tra i membri quando arrivano nuove richieste di connessione.

    image

  5. Aggiungi membri (test-vm-1 e test-vm-2 nel nostro caso) al nuovo pool, e per ciascuno seleziona l'IP della sottorete e la porta (80 nel nostro caso) del servizio in esecuzione su quell'host.

    image

  6. Crea un monitor e seleziona il tipo di servizio (HTTP nel nostro caso) da monitorare su ogni host membro. Clicca su Create Load Balancer per finire.

    image

  7. Attendi finché lo Stato Operativo del load balancer diventa Online. Se un membro non è raggiungibile dal load balancer lo Stato Operativo diventa Degraded, in quel caso le richieste vengono instradate ai membri rimanenti.

    image

  8. Assegna un Floating IP al nuovo load balancer.

    image

Nota: ora è possibile rimuovere gli ip floating dalle due VM.

Nota: Se il servizio non deve essere visibile da Internet (0.0.0.0/0) crea un gruppo di sicurezza che abiliti il traffico in ingresso dalla rete default o dalla tua rete personalizzata e associalo alle VM altrimenti il load balancer non sarà in grado di inoltrare le richieste ai suoi membri. Il CIDR della regola del gruppo di sicurezza è l'IP della rete (se usi la rete "default" è 192.168.0.0/16).

image

Testa il Load Balancer -------------------

curl <Load-Balancer-floating-ip>