Wie erstelle ich einen Load Balancer via OSC

Das folgende HowTo beschreibt, wie Sie im OpenStack OSC einen einfachen HTTP Load Balancer (LB) unter Verwendung einer Floating IP konfigurieren können. Bitte beachten sie den Disclaimer. Viele weitere LB Konfigurationsbeispiele siehe lb-basic-cookbook.

Es kann vorteilhaft sein, bei der Einrichtung des VIP eines Load Balancers eine Floating IP-Adresse zu verwenden, um sicherzustellen, dass Sie die Kontrolle über die IP behalten, die als Floating IP zugewiesen wird, falls der Load Balancer zerstört, verschoben oder neu erstellt werden muss.

Bemerkung

Beachten Sie, dass bei iPv6 Load balancing mit der folgenden Methode nicht möglich ist, da Floating IPs nicht mit iPv6 funktionieren.

Szenariobeschreibung:

  • Die Backend-Server 192.0.2.10 und 192.0.2.11 im Subnetz private-subnet wurden mit einer HTTP-Anwendung auf TCP-Port 80 konfiguriert.
  • Diese Backend-Server wurden mit einem Health Check unter dem URL-Pfad „/healthcheck“ konfiguriert. Siehe unter lb-health-monitor.
  • Das Neutron Netzwerk public ist ein gemeinsames externes Netzwerk, das vom Cloud-Betreiber erstellt wurde und über das Internet erreichbar ist.
  • Wir wollen einen Basis-Loadbalancer konfigurieren, der aus dem Internet zugänglich ist, Web-Anfragen an die Backend-Server verteilt und den Pfad „/healthcheck“ überprüft, um die Gesundheit der Backend-Mitglieder sicherzustellen. Weiterhin wollen wir dies mit einer Floating IP-Adresse tun.

Lösung:

  • Erstellen Sie den Load Balancer lb1 im private-subnet.
  • Erstellen Sie einen Listener listener1.
  • Erstellen Sie den Pool pool1 als Standard-Pool des listener1.
  • Erstellen Sie einen Health Monitor auf pool1, der den Pfad „/healthcheck“ testet.
  • Fügen Sie die Members 192.0.2.10 und 192.0.2.11 im private-subnet zu pool1 hinzu.
  • Erstellen Sie eine freie floating IP-Adresse im public-subnet.
  • Verknüpfen Sie diese Floating IP mit dem VIP-Port des lb1.

CLI-Befehle:

openstack loadbalancer create --name lb1 --vip-subnet-id private-subnet
# Re-run the following until lb1 shows ACTIVE and ONLINE statuses:
openstack loadbalancer show lb1
openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 lb1
openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP
openstack loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type HTTP --url-path /healthcheck pool1
openstack loadbalancer member create --subnet-id private-subnet --address 192.0.2.10 --protocol-port 80 pool1
openstack loadbalancer member create --subnet-id private-subnet --address 192.0.2.11 --protocol-port 80 pool1
openstack floating ip create public
# The following IDs should be visible in the output of previous commands
openstack floating ip set --port <load_balancer_vip_port_id> <floating_ip_id>