Funktionsweise von Azure Load Balancer

Abgeschlossen

Azure Load Balancer arbeitet auf der Transportebene des Open Systems Interconnection (OSI)-Modells. Diese Layer 4-Funktionalität ermöglicht die Datenverkehrsverwaltung basierend auf bestimmten Eigenschaften des Datenverkehrs. Eigenschaften, einschließlich Quell- und Zieladresse, TCP- oder UDP-Protokolltyp und Portnummer.

Der Load Balancer verfügt über mehrere Elemente, die zusammenarbeiten, um die hohe Verfügbarkeit und Leistung einer Anwendung sicherzustellen.

  • Front-End-IP
  • Lastenausgleichsregeln
  • Back-End-Pool
  • Gesundheitsprüfungen
  • NAT-Regeln für eingehenden Datenverkehr
  • Hochverfügbarkeitsports
  • Ausgangsregeln

Front-End-IP

Die Frontend-IP-Adresse ist die Adresse, die Clients verwenden, um eine Verbindung zu Ihrer Webanwendung herzustellen. Eine Front-End-IP-Adresse kann entweder eine öffentliche oder eine private IP-Adresse sein. Azure-Lastenausgleichsgeräte können über mehrere Front-End-IPs verfügen. Die Auswahl einer öffentlichen oder privaten IP-Adresse bestimmt, welche Art des Lastenausgleichs erstellt werden soll:

  • Öffentliche IP-Adresse: Ein öffentlicher Load Balancer: Ein öffentlicher Load Balancer ordnet die öffentliche IP und den Port des eingehenden Datenverkehrs der privaten IP und dem Port der virtuellen Maschine (VM) zu. Sie können bestimmte Typen von Datenverkehr auf verschiedene VMs oder Dienste verteilen, indem Sie Lastenausgleichsregeln anwenden. Sie können zum Beispiel die Netzwerklast von Webanforderungen auf mehrere Webserver verteilen. Der Load Balancer ordnet den Antwortdatenverkehr von der privaten IP und dem Port der VM der öffentlichen IP und dem Port des Load Balancers zu. Anschließend überträgt sie die Antwort an den anfordernden Client zurück.

  • Private IP-Adresse: Ein interner Lastenausgleich: Ein interner Lastenausgleich verteilt Datenverkehr an Ressourcen, die sich in einem virtuellen Netzwerk befinden. Azure schränkt den Zugriff auf die Front-End-IP-Adressen eines virtuellen Netzwerks ein, die Lastenausgleich erfahren. Front-End-IP-Adressen und virtuelle Netzwerke werden niemals direkt einem Internetendpunkt offengelegt. Interne Branchenanwendungen, die in Azure ausgeführt werden und von Azure aus oder von lokalen Ressourcen über eine VPN- oder ExpressRoute-Verbindung aufgerufen werden.

    Diagramm, das zeigt, wie öffentliche und interne Lastenausgleichsgeräte in Azure Load Balancer funktionieren.

Lastenausgleichsregeln

Mit einer Lastenausgleichsregel wird definiert, wie Datenverkehr auf den Back-End-Pool verteilt wird. Die Regel ordnet eine bestimmte Front-End-IP- und Portkombination einer Gruppe von Back-End-IP-Adressen und Portkombinationen zu.

Diagramm, das zeigt, wie Lastenausgleichsregeln in Azure Load Balancer funktionieren.

Der Datenverkehr wird mithilfe eines 5-Tupel-Hash verwaltet, der aus den folgenden Elementen erstellt wurde:

  • Quell-IP: Die IP-Adresse des anfordernden Clients.
  • Quellport: Der Port des anfordernden Clients.
  • Ziel-IP: Die Ziel-IP-Adresse der Anforderung.
  • Zielport: Dies ist der Zielport der Anforderung.
  • Protokolltyp: Der angegebene Protokolltyp, das Transmission Control Protocol (TCP) oder das User Datagram Protocol (UDP).
  • Sitzungsaffinität: Stellt sicher, dass immer derselbe Poolknoten den Datenverkehr für einen Client verarbeitet.

Der Load Balancer ermöglicht Ihnen, Dienste über mehrere Ports, mehrere IP-Adressen oder beides auszugleichen. Sie können unterschiedliche Lastenausgleichsregeln für jede Front-End-IP konfigurieren. Mehrere Front-End-Konfigurationen werden nur mit IaaS-VMs unterstützt.

Ein Load Balancer kann keine unterschiedlichen Regeln aufgrund des Inhalts des internen Datenverkehrs anwenden, da es auf Layer 4 (Transportebene) des OSI-Modells operiert. Wenn Sie den Datenverkehr basierend auf seinen Layer 7-Eigenschaften (Application Layer) verwalten müssen, müssen Sie eine Lösung wie das Azure-Anwendungsgateway bereitstellen.

Back-End-Pool

Der Back-End-Pool ist eine Gruppe von virtuellen Computern oder Instanzen in einem Vm Scale Set, die auf die eingehende Anforderung antwortet. Um kosteneffizient zu skalieren, um den hohen Datenverkehr zu bewältigen, empfehlen Richtlinien für die Datenverarbeitung im Allgemeinen, weitere Instanzen zum Backend-Pool hinzuzufügen.

Load Balancer implementiert die automatische Neukonfiguration zur Umverteilung der Last über die geänderte Anzahl von Instanzen, wenn Sie Instanzen nach oben oder unten skalieren. Wenn Sie z. B. zwei weitere VMs-Instanzen zum Back-End-Pool hinzugefügt haben, würde load Balancer sich neu konfigurieren, um den Ausgleich des Datenverkehrs mit diesen Instanzen basierend auf den bereits konfigurierten Lastenausgleichsregeln zu starten.

Gesundheitsprüfungen

Mithilfe eines Integritätstest wird der Integritätsstatus der Instanzen im Back-End-Pool ermittelt. Diese Integritätssonde bestimmt, ob eine Instanz fehlerfrei ist und Datenverkehr empfangen kann. Sie können den gewünschten Fehlerschwellenwert für Ihre Integritätstests definieren. Wenn ein Test nicht reagiert, beendet der Load Balancer das Senden neuer Verbindungen an die fehlerhaften Instanzen. Ein Testfehler wirkt sich nicht auf vorhandene Verbindungen aus. Die Verbindung wird fortgesetzt, bis:

  • Die Anwendung beendet den Ablauf.
  • Auftreten eines Leerlauftimeouts
  • Der virtuelle Computer wird heruntergefahren.

Mit load Balancer können Sie verschiedene Integritätssondentypen für Endpunkte konfigurieren: TCP, HTTP und HTTPS.

  • Benutzerdefinierte TCP-Probe: Diese Sonde basiert auf der Einrichtung einer erfolgreichen TCP-Sitzung zu einem definierten Probe-Port. Wenn der angegebene Listener auf dem virtuellen Computer vorhanden ist, ist die Abfrage erfolgreich. Wenn die Verbindung abgelehnt wird, schlägt der Test fehl. Sie können den Port, das Intervall und den Fehlerschwellenwert angeben.
  • Benutzerdefinierte HTTP- oder HTTPS-Probe: Der Lastenausgleich überprüft Ihren Endpunkt regelmäßig (standardmäßig alle 15 Sekunden). Die Instanz ist fehlerfrei, wenn sie innerhalb des Timeoutzeitraums mit einem HTTP 200 reagiert (Standardwert von 31 Sekunden). Jeder andere Status als HTTP 200 bewirkt, dass der Prüfpunkt fehlschlägt. Sie können den Port (Port), den URI für das Anfordern des Integritätsstatus vom Back-End (URI), die Zeitspanne zwischen Probeversuchen (Intervall) und die Anzahl der Fehler angeben, die auftreten müssen, damit die Instanz als fehlerhaft (Unhealthy threshold) betrachtet wird.

Sitzungspersistenz

Standardmäßig verteilt Load Balancer den Netzwerkdatenverkehr gleichmäßig unter mehreren VM-Instanzen. Dabei wird Bindung nur in einer Transportsitzung angeboten. Die Sitzungspersistenz gibt an, wie datenverkehr von einem Client verarbeitet werden soll. Das Standardverhalten (None) besteht darin, dass jeder fehlerfreie virtuelle Computer aufeinanderfolgende Anforderungen von einem Client verarbeiten kann.

Die Sitzungspersistenz wird auch als Sitzungsaffinität, Quell-IP-Affinität oder Client-IP-Affinität bezeichnet. Dieser Verteilungsmodus verwendet einen Hash mit zwei Tupeln (Quell-IP und Ziel-IP) oder drei Tupel (Quell-IP, Ziel-IP und Protokolltyp) zum Weiterleiten an Back-End-Instanzen. Wenn Sie die Sitzungspersistenz verwenden, wechseln Verbindungen vom selben Client zur gleichen Back-End-Instanz innerhalb des Back-End-Pools. Sie können eine der folgenden Sitzungspersistenzoptionen konfigurieren:

  • None (Default): Gibt an, dass eine fehlerfreie VM die Anforderung verarbeiten kann.
  • Client-IP (2-Tupel):Gibt an, dass die gleiche Back-End-Instanz aufeinander folgende Anforderungen von derselben Client-IP-Adresse verarbeiten kann.
  • Client-IP und -Protokoll (3-Tupel): Gibt an, dass die gleiche Back-End-Instanz aufeinander folgende Anforderungen aus derselben Client-IP-Adresse und Protokollkombination verarbeiten kann.

Sie können dieses Verhalten ändern, indem Sie eine der Optionen konfigurieren, die in den folgenden Abschnitten beschrieben werden.

Hochverfügbarkeitsports

Eine Lastenausgleichsregel, die mit protocol - all and port - 0 konfiguriert ist, wird als Hochverfügbarkeitsportregel (HA-Portregel) bezeichnet. Diese Regel ermöglicht es, dass eine einzige Regel den Lastenausgleich aller TCP- und UDP-Datenflüsse vornimmt, die an allen Ports einer internen Load Balancer Standard-Instanz eingehen.

Die Entscheidung über den Lastenausgleich erfolgt pro Datenfluss. Diese Lösung basiert auf der folgenden Verbindung mit fünf Tupeln:

  • Quell-IP-Adresse
  • Quellport
  • IP-Zieladresse
  • Zielport
  • Protocol

Die Lastenausgleichsregeln für Hochverfügbarkeitsports unterstützen Sie bei wichtigen Szenarios (z. B. Hochverfügbarkeit und Skalierung für virtuelle Netzwerkgeräte in virtuellen Netzwerken). Das Feature kann hilfreich sein, wenn viele Ports lastverteilt werden müssen.

Ein Diagramm, das zeigt, wie Hochverfügbarkeit-Ports im Azure Load Balancer funktionieren.

NAT-Regeln für eingehenden Datenverkehr

Sie können Lastenausgleichsregeln in Kombination mit NAT-Regeln (Network Address Translation) verwenden. Beispielsweise können Sie die NAT der öffentlichen Adresse des Lastenausgleichs zu TCP 3389 auf einem bestimmten virtuellen Computer verwenden. Diese Regelkombination ermöglicht den Remotedesktopzugriff von außerhalb von Azure.

Diagramm, das zeigt, wie eingehende NAT-Regeln in Azure Load Balancer funktionieren.

Ausgangsregeln

Eine ausgehende Regel konfiguriert die Quellnetzwerkadressübersetzung (Source Network Address Translation, SNAT) für alle vom Back-End-Pool identifizierten VMs oder Instanzen. Diese Regel ermöglicht Instanzen im Back-End die Kommunikation (ausgehend) mit dem Internet oder anderen öffentlichen Endpunkten.

Diagramm, das zeigt, wie ausgehende Regeln in Azure Load Balancer funktionieren.