Mehrere Front-Ends für Azure Load Balancer

Mit Azure Load Balancer können Sie für Dienste an mehreren Ports, mehreren IP-Adressen oder beidem einen Lastenausgleich vornehmen. Sie können einen öffentlichen oder internen Lastenausgleich verwenden, um den Datenverkehr über eine Reihe von Diensten hinweg zu lastenausgleichen, z. B. Skalierungssätze für virtuelle Computer oder virtuelle Computer (VMs).

In diesem Artikel werden die Grundlagen des Lastenausgleichs über mehrere IP-Adressen mit demselben Port und Protokoll beschrieben. Wenn Sie Dienste mit einer IP-Adresse verfügbar machen möchten, finden Sie vereinfachte Anweisungen für öffentliche Load Balancer-Konfigurationen hier und für interne Load Balancer-Konfigurationen hier. Mehrere Front-Ends können einer Konfiguration mit einem einzelnen Front-End inkrementell hinzugefügt werden. Mit den Konzepten in diesem Artikel können Sie eine vereinfachte Konfiguration jederzeit erweitern.

Wenn Sie einen Azure Load Balancer definieren, sind eine Front-End- und eine Back-End-Pool-Konfiguration über Regeln verbunden. Die Integritätsprüfung, auf die durch die Lastenausgleichsregel verwiesen wird, wird verwendet, um die Integrität eines virtuellen Computers auf einem bestimmten Port und Protokoll zu bestimmen. Basierend auf den Ergebnissen der Integritätsprüfung werden neue Flüsse an VMs im Back-End-Pool gesendet. Das Front-End (bzw. VIP) wird durch eine aus 3 Tupeln bestehende IP-Adresse (öffentlich oder intern), ein Transportprotokoll (UDP oder TCP) und eine Portnummer aus der Lastenausgleichsregel definiert. Der Back-End-Pool ist eine Sammlung von VM-IP-Konfigurationen (Teil der NIC-Ressource), die auf den Load Balancer-Back-End-Pool verweisen.

Die folgende Tabelle enthält einige Beispielkonfigurationen des Front-Ends:

Front-End IP-Adresse Protokoll port
1 65.52.0.1 TCP 80
2 65.52.0.1 TCP 8080
3 65.52.0.1 UDP 80
4 65.52.0.2 TCP 80

Die Tabelle enthält vier verschiedene Front-Ends. Frontends #1, #2 und #3 verwenden dieselbe IP-Adresse, aber der Port oder das Protokoll unterscheidet sich für jedes Frontend. Die Front-Ends 1 und 4 sind ein Beispiel für mehrere Front-Ends, wobei das gleiche Front-End-Protokoll und der gleiche Port für mehrere Front-Ends verwendet werden.

Azure Load Balancer bietet Flexibilität beim Definieren der Lastenausgleichsregeln. Eine Regel deklariert, wie eine Adresse und ein Port auf dem Front-End der Zieladresse und dem Port auf dem Back-End zugeordnet werden. Ob Back-End-Ports in mehreren Regeln wiederverwendet werden, hängt vom Typ der Regel ab. Für jeden Regeltyp gelten bestimmte Anforderungen, die die Hostkonfiguration und den Testentwurf beeinflussen können. Es gibt zwei Regeltypen:

  1. Die Standardregel ohne Wiederverwendung des Back-End-Ports
  2. Die Floating IP-Regel, bei der Back-End-Ports wiederverwendet werden

Mit Azure Load Balancer können Sie beide Regeltypen in einer Load Balancer-Konfiguration mischen. Der Load Balancer kann sie gleichzeitig für eine bestimmte VM oder eine beliebige Kombination verwenden, sofern Sie die Einschränkungen der Regel beachten. Welchen Regeltyp Sie auswählen, hängt von den Anforderungen der Anwendung und der Komplexität bei der Unterstützung der Konfiguration ab. Sie sollten bewerten, welche Regeltypen für Ihr Szenario am besten geeignet sind. Wir untersuchen diese Szenarien näher und beginnen mit dem Standardverhalten.

Regeltyp 1: Keine Wiederverwendung von Back-End-Ports

Diagramm Load Balancer Datenverkehrs ohne Back-End-Port wiederverwenden.

In diesem Szenario werden die Front-Ends wie folgt konfiguriert:

Front-End IP-Adresse Protokoll port
Front-End (grün) 1 65.52.0.1 TCP 80
Front-End (lila) 2 65.52.0.2 TCP 80

Die Back-End-Instanz-IP (BIP) ist die IP-Adresse des Back-End-Diensts im Back-End-Pool, jede VM macht den gewünschten Dienst auf einem eindeutigen Port auf der Back-End-Instanz-IP verfügbar. Dieser Dienst ist dem Front-End über eine Regeldefinition zugeordnet.

Wir definieren zwei Regeln:

Regel Front-End-Zuordnung Im Back-End-Pool
1 grünes Frontend FIP1:80 grünes Back-End BIP1:80, grünes Back-End BIP2:80
2 VIP FIP2:80 Violettes Back-End BIP1:81, lila Back-End BIP2:81

Die vollständige Zuordnung in Azure Load Balancer sieht jetzt wie folgt aus:

Regel Front-End-IP-Adresse Protokoll port Destination port
Regel (grün) 1 65.52.0.1 TCP 80 BIP-IP-Adresse 80
Regel (lila) 2 65.52.0.2 TCP 80 BIP-IP-Adresse 81

Jede Regel muss einen Datenfluss mit einer eindeutigen Kombination aus IP-Zieladresse und Zielport erzeugen. Mehrere Lastenausgleichsregeln können Flüsse an dieselbe Back-End-Instanz-IP auf verschiedenen Ports liefern, indem sie den Zielport des Flusses variieren.

Integritätsüberprüfungen werden immer an die Back-End-Instanz-IP einer VM weitergeleitet. Sie müssen sicherstellen, dass der Test die Integrität der VM widerspiegelt.

Regeltyp 2: Wiederverwendung von Back-End-Ports mit Floating IP

Azure Load Balancer bietet die Flexibilität, den Front-End-Port unabhängig vom verwendeten Regeltyp für mehrere Front-Ends wiederzuverwenden. Darüber hinaus ist es in einigen Anwendungsszenarien eine Priorität bzw. eine Anforderung, den gleichen Port für mehrere Anwendungsinstanzen auf einer einzelnen VM im Back-End-Pool zu verwenden. Gängige Beispiele für die Portwiederverwendung sind das Clustering für Hochverfügbarkeit, virtuelle Netzwerkgeräte und die Bereitstellung mehrerer TLS-Endpunkte ohne erneute Verschlüsselung.

Wenn Sie den Back-End-Port in mehreren Regeln wiederverwenden möchten, müssen Sie in der Regeldefinition Floating IP aktivieren.

Floating IP ist die in Azure verwendete Benennung für die Komponente „Direct Server Return (DSR)“. DSR besteht aus zwei Teilen: einer Datenflusstopologie und einem Zuordnungsschema für IP-Adressen. Auf Plattformebene wird Azure Load Balancer immer in einer DSR-Datenflusstopologie betrieben, unabhängig davon, ob Floating IP aktiviert ist. Dies bedeutet, dass der ausgehende Teil eines Datenflusses immer ordnungsgemäß so umgeschrieben wird, dass er direkt wieder an den Ursprung übermittelt wird.

Um die Nutzung zu vereinfachen, stellt Azure mit dem Standardregeltyp ein herkömmliches Zuordnungsschema für IP-Adressen für den Lastenausgleich bereit. Durch das Aktivieren von Floating IP ändert sich das Zuordnungsschema für IP-Adressen, sodass größere Flexibilität möglich ist, wie im Folgenden beschrieben.

Diagramm des Lastenausgleichsdatenverkehrs für mehrere Frontend-IPs mit gleitender IP.

In diesem Szenario hat jede VM im Back-End-Pool drei Netzwerkschnittstellen:

  • DIP: eine mit der VM verknüpfte virtuelle NIC (IP-Konfiguration der NIC-Ressource von Azure)
  • Front-End 1: eine Loopbackschnittstelle im Gastbetriebssystem, die mit der IP-Adresse von Front-End 1 konfiguriert ist
  • Front-End 2: eine Loopbackschnittstelle im Gastbetriebssystem, die mit der IP-Adresse von Front-End 2 konfiguriert ist

Gehen wir von der gleichen Front-End-Konfiguration wie im vorherigen Szenario aus:

Front-End IP-Adresse Protokoll port
Front-End (grün) 1 65.52.0.1 TCP 80
Front-End (lila) 2 65.52.0.2 TCP 80

Wir definieren zwei gleitende IP-Regeln:

Regel Front-End Zuordnung zum Back-End-Pool
1 grüne Regel FIP1:80 Back-End (grün) Frontend1:80 (in VM1 und VM2)
2 lila Regel FIP2:80 Back-End (lila) Frontend2:80 (in VM1 und VM2)

Die folgende Tabelle veranschaulicht die vollständige Zuordnung im Load Balancer:

Regel Front-End-IP-Adresse Protokoll port Destination port
Regel (grün) 1 65.52.0.1 TCP 80 Identisch mit dem Front-End (65.52.0.1) Identisch mit dem Front-End (80)
Regel (lila) 2 65.52.0.2 TCP 80 Identisch mit dem Front-End (65.52.0.2) Identisch mit dem Front-End (80)

Das Ziel des eingehenden Datenflusses ist die Front-End-IP-Adresse der Loopbackschnittstelle der VM. Jede Regel muss einen Datenfluss mit einer eindeutigen Kombination aus IP-Zieladresse und Zielport erzeugen. Die Portwiederverwendung ist auf derselben VM möglich, indem Sie die Ziel-IP-Adresse an die Frontend-IP-Adresse des Flusses ändern. Ihr Dienst wird für den Load Balancer verfügbar gemacht, indem er an die Front-End-IP-Adresse und den Port der jeweiligen Loopbackschnittstelle gebunden wird.

Sie werden feststellen, dass sich der Zielport im Beispiel nicht ändert. Obwohl dies ein Floating IP-Szenario ist, unterstützt Azure Load Balancer auch das Definieren einer Regel, um den Back-End-Zielport zu ändern, damit er sich vom Front-End-Zielport unterscheidet.

Der Floating IP-Regeltyp bildet die Grundlage für mehrere Load Balancer-Konfigurationsmuster. Ein derzeit verfügbares Beispiel ist die Konfiguration eines oder mehrerer Listener für Always On-Verfügbarkeitsgruppen. Mit der Zeit werden weitere dieser Szenarien dokumentiert.

Hinweis

Ausführlichere Informationen zu den spezifischen Gastbetriebssystemkonfigurationen, die zum Aktivieren von Floating IP erforderlich sind, finden Sie unter Konfiguration der unverankerten IP von Azure Load Balancer.

Einschränkungen

  • Mehrere Front End-Konfigurationen werden nur für IaaS-VMs und VM-Skalierungsgruppen unterstützt.
  • Bei der Floating IP-Regel muss die Anwendung die primäre IP-Konfiguration für ausgehende SNAT-Datenflüsse verwenden. Wenn Ihre Anwendung an die Front-End-IP-Adresse gebunden ist, die an der Loopbackschnittstelle im Gastbetriebssystem konfiguriert ist, ist die Azure-SNAT für ausgehenden Datenverkehr nicht verfügbar, um den ausgehenden Datenfluss umzuschreiben, und beim Datenfluss tritt ein Fehler auf. Lesen Sie die Informationen unter Ausgehende Verbindungen in Azure.
  • Floating IP wird für sekundäre IP-Konfigurationen derzeit nicht unterstützt.
  • Öffentliche IP-Adressen haben Auswirkungen auf die Abrechnung. Weitere Informationen finden Sie unter Preise für IP-Adressen
  • Es gelten Grenzwerte für Abonnements. Weitere Informationen finden Sie unter Einschränkungen für Dienste .

Nächste Schritte