VMware Integrated OpenStack 3.0 oder 3.1 unterstützt LBaaS v2.0. Sie aktivieren LBaaS v2.0 standardmäßig nach Abschluss des Installations- oder Upgrade-Prozesses von VMware Integrated OpenStack.

Vorbereitungen

Anmerkung:

VMware Integrated OpenStack unterstützt LBaaS v1.0 nicht.

Diese Aufgabe betrifft nur VMware Integrated OpenStack mit bereitgestellter NSX-Komponente.

Warum und wann dieser Vorgang ausgeführt wird

Diese Aufgabe beinhaltet das Erstellen einer Systemüberwachung und deren Verknüpfung mit dem LBaaS-Pool, der die LBaaS-Serverinstanzen enthält. Die Systemüberwachung ist ein Neutron-Dienst, der überprüft, ob die Instanzen auf dem angegebenen Protokollport nach wie vor ausgeführt werden.

Prozedur

  1. Melden Sie sich unter Verwendung von SSH bei VMware Integrated OpenStack Manager an.
  2. Wechseln Sie zum Root-Benutzer.
    sudo su -
  3. Aktivieren Sie LBaaS v2.0.
    viocli lbaasv2-enable 

    Option

    Beschreibung

    -d DEPLOYMENT

    Gibt den Namen der VMware Integrated OpenStack-Bereitstellung an.

  4. Verwenden Sie in VMware Integrated OpenStack Manager SSH, um sich beim Neutron-Knoten anzumelden.
  5. Wechseln Sie zum Root-Benutzer.
    sudo su -
  6. Erstellen Sie einen exklusiven Router.
    neutron router-create --router_type=exclusive <router name>
  7. Verbinden Sie ein Subnetz mit dem neuen Router.
    neutron net-create <network name>
    neutron subnet-create <network name> <CIDR value> --name <subnet name>
    neutron router-interface-add <router name or id> <subnet name or id>
  8. Erstellen Sie den Lastausgleichsdienst.

    Dieser Schritt beinhaltet das Erstellen des Lastausgleichsdiensts, des Listener und des Lastausgleichspools.

    1. Erstellen Sie den Lastausgleichsdienst und geben Sie dabei das VIP-Subnetz des Lastausgleichsdiensts an.
      neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>

      Parameter

      Beschreibung

      name

      Geben Sie einen Namen für den neuen Lastausgleichsdienst an.

      vip-subnet-id

      Geben Sie das VIP-Subnetz für den neuen Lastausgleichsdienst an. Nur Mitglieder dieses Subnetzes können zum Pool hinzugefügt werden.

    2. Erstellen Sie einen Listener für den neuen Lastausgleichsdienst.
      neutron lbaas-listener-create \
      --loadbalancer LOAD_BALANCER_1_NAME \
      --protocol <protocol type> \
      --protocol-port <protocol port> 
      --name LISTENER_1_NAME

      Parameter

      Beschreibung

      loadbalancer

      Geben Sie den Lastausgleichsdienst an, den Sie im vorherigen Teilschritt erstellt haben.

      protocol type

      Geben Sie den Protokolltyp für den Listener an.

      • TCP

      • HTTP

      • HTTPS

      protocol port

      Geben Sie den Protokollport an.

      name

      Geben Sie einen Namen für den neuen Listener an.

    3. Erstellen Sie einen LBaaS-Pool.
      neutron lbaas-pool-create \
      --lb-algorithm <load balancing method> \
      --listener LISTENER_1_NAME \
      --protocol <protocol type> \
      --name LB_POOL_1

      Parameter

      Beschreibung

      lb-algorithm

      Geben Sie eine Lastausgleichsmethode an:

      • IP_HASH

        Wählt basierend auf einem Hash der Quell- und Ziel-IP-Adresse eines jeden Pakets einen Server aus.

      • LEAST_CONN

        Verteilt die Client-Anforderungen basierend auf der Anzahl der bereits auf den Servern aktiven Verbindungen an mehrere Server. Neue Verbindungen werden an den Server mit den wenigsten Verbindungen gesendet.

      • ROUND_ROBIN

        Dabei wird die jedem Server zugeordnete Gewichtung berücksichtigt. Dieses Verfahren ist der geeignetste und fairste Algorithmus bei gleichmäßig verteilter Verarbeitungszeit auf dem Server.

      • URI

        Der linke Teil der URI (vor dem Fragezeichen) wird zerlegt und durch die Gesamtgewichtung der laufenden Server geteilt. Das Ergebnis bestimmt, welcher Server die Anforderung empfängt. Damit wird sichergestellt, dass eine Anfrage immer an denselben Server geleitet wird, vorausgesetzt, alle Server bleiben verfügbar.

      listener

      Geben Sie den Listener an, den Sie im vorherigen Teilschritt erstellt haben.

      protocol

      Geben Sie an, welches Protokoll die Pool-Mitglieder verwenden sollen.

      • TCP

      • HTTP

      • HTTPS

      name

      Geben Sie einen Namen für den neuen Pool an.

  9. Erstellen Sie die Instanzen für die Server und den Client.
    nova boot --image <image-uuid> --flavor <flavor> <server 1 name>
    nova boot --image <image-uuid> --flavor <flavor> <server 2 name>
    nova boot --image <image-uuid> --flavor 1 <client name>
  10. Fügen Sie die Serverinstanzen zu dem erstellten LBaaS-Pool hinzu.
    neutron lbaas-member-create  \
    --subnet <subnet-id> --address <server 1 IP> \
    --protocol-port 80 <pool name>
    
    neutron lbaas-member-create  \
    --subnet <subnet-id> --address <server 2 IP> \
    --protocol-port 80 <pool name>
  11. Richten Sie die Systemüberwachung ein.
    neutron lbaas-healthmonitor-create \
    --delay DELAY_IN_SECONDS --type [HTTP | TCP] --max-retries NUMBER \
    --timeout TIMEOUT_IN_SECONDS --pool LBAAS_POOL

    Parameter

    Beschreibung

    delay

    Die Zeit in Sekunden zwischen dem Senden von Proben an Mitglieder.

    type

    Einer der vordefinierten Systemüberwachungstypen. Geben Sie HTTP oder TCP an.

    max-retries

    Anzahl der zulässigen Verbindungsfehler, bevor der Mitgliederstatus in INAKTIV geändert wird.

    timeout

    Maximale Anzahl der Sekunden, die bei der Überwachung für die Verbindungsherstellung gewartet wird, bevor eine Zeitüberschreitung eintritt.

    Anmerkung:

    Der Wert für die Zeitüberschreitung muss größer als der Verzögerungswert sein.

    pool

    Geben Sie den LBaaS-Pool an, der überwacht werden soll.

  12. (Optional) : Senden Sie Testanforderungen, um Ihre LBaaS-Konfiguration zu überprüfen.
    1. Erstellen Sie eine index.html-Testdatei.
    2. Führen Sie in demselben Verzeichnis eine einfache Anforderung aus.
      # sudo python -m SimpleHTTPServer 80
    3. Melden Sie sich bei der Client-Instanz an.
    4. Führen Sie den Befehl wget aus, um anzuzeigen, ob die Last Ihrer Anforderungen ordnungsgemäß auf die beiden Server im Pool verteilt wird.
       # wget -O - http://<vip-ip>