Einführung
Viele Unternehmen verwenden Kemp Load Balancer, um die Datenlast innerhalb ihrer Rechenzentren zu verteilen. Diese Unternehmen können jetzt den Wert ihrer Implementierungen mit Cloud-basiertem DNS-Traffic-Management von NS1 erweitern. Eine gemeinsame Lösung von Kemp und NS1 sorgt für optimales Load Balancing zwischen den Rechenzentren und verhindert so Überlastungen an einem Standort, während an einem anderen genügend Kapazität vorhanden ist. Dieser Lösungsleitfaden enthält eine schrittweise Anleitung, wie Sie die wichtigsten Funktionen von NS1 und Kemp nutzen können, um eine optimierte Global Traffic Management-Lösung aufzubauen.
Lösungs-Beispiel
Nehmen wir ein Beispiel für eine Unternehmensinfrastruktur, die aus zwei Rechenzentren besteht, eines in LA und eines in Atlanta. Diese Rechenzentren unterstützen einen öffentlich zugänglichen Webservice "Kempexample.com", der jeweils von einem Kemp Load Balancer unterstützt wird.
Die öffentliche IP-Adresse der jeweiligen Load Balancer lautet wie folgt:
LA Rechenzentrum: 1.1.1.1
Atlanta Rechenzentrum: 2.2.2.2
Das Ziel der Global Traffic Management-Lösung ist folgendes:
- Keinen Benutzer mit einem nicht verfügbaren Rechenzentrum verbinden.
- Benutzer mit dem geografisch nächstgelegenen Rechenzentrum verbinden, es sei denn, die Anzahl der aktiven Verbindungen in diesem Rechenzentrum nähert sich einem Schwellenwert oder überschreitet diesen. Wenn sich die Datenlast dem Schwellenwert nähert:
a. Senden Sie einen immer höheren Anteil der eingehenden Anfragen an das andere Rechenzentrum.
b. Senden Sie keine Anfragen mehr an ein Rechenzentrum, dessen Auslastung den Schwellenwert überschreitet.
Im Folgenden finden Sie eine Schritt-für-Schritt-Anleitung für die Einrichtung dieser Funktion auf der NS1-Plattform.
Schritt 1: Einrichten von DNS-Zone und -Eintrag
Als erstes müssen Sie eine Zone und Einträge zu der Domain hinzufügen, die Sie konfigurieren möchten. Klicken Sie dazu auf 'Zones' am oberen Rand des Bildschirms im Portal.
Wählen Sie "Add Zone" (Zone hinzufügen): Kempexample.com in dieser Einrichtungs-Demo.
Fügen Sie der Zone einen Eintrag hinzu, mit 2 Antworten, die je den IP-Adressen der Load Balancer von LA und Atlanta entsprechen (1.1.1.1 bzw. 2.2.2.2).
Ihr Eintrag A mit 2 Antworten erscheint wie unten dargestellt:
Die IP-Adressen sind jeweils die externe IP (oder VIP) des Load Balancers der zwei Rechenzentren.
Schritt 2: Richten Sie die Datenfeeds ein, um die Metadaten für jede Antwort zu liefern
In NS1 ist es ganz einfach, Metadaten mit DNS-Einträgen zu verknüpfen. Metadaten können sowohl statische als auch dynamische Attribute der Ressourcen darstellen, auf die die Einträge verweisen - in diesem Fall Kemp Load Balancer in den Rechenzentren in LA und Atlanta. Das erste Metadaten-Attribut, das wir konfigurieren werden, ist der geografische Standort. Dieses Attribut wird verwendet, um den Standort des anfragenden Benutzers mit dem Standort des Datenzentrums zu vergleichen und die Antwort auszuwählen, die dem anfragenden Benutzer näher liegt.
Klicken Sie auf das Dropdown-Symbol rechts neben der "1.1.1.1"-Antwort und wählen Sie "Settings".
Es wird eine Liste mit Einstellungen angezeigt. Wählen Sie "georegion". Klicken Sie das Kästchen für US West an.
Führen Sie die gleichen Schritte für den Atlanta-Standort (2.2.2.2) durch und ordnen Sie dieser Antwort "US East" zu.
Der nächste Schritt besteht darin, diesen Antworten dynamische (auch Echtzeit-) Metadaten zuzuordnen. Die erste dieser Daten ist der Status "up/down" (verfügbar/ausgefallen). Dazu verwenden wir die Überwachungsfunktion der NS1-Plattform, um die IP-Adresse jedes Kemp Load Balancers per PING abzufragen und das Ergebnis an die DNS-Antwort weiterzuleiten. (Wenn Sie Ihr eigenes Monitoring oder den Monitoring-Dienst eines Drittanbieters verwenden, konsultieren Sie die NS1 Knowledge Base, um die Konfiguration durchzuführen). Navigieren Sie zunächst zur "Monitor"-Registerkarte am oberen Rand des Bildschirms. Wählen Sie auf dem nächsten Bildschirm "Add Monitor" (Prüfobjekt hinzufügen). Daraufhin können Sie das Überwachungsprotokoll auswählen, das Sie verwenden möchten. In diesem Beispiel verwenden wir PING. Konfigurieren Sie die anfänglichen Einstellungen wie unten gezeigt. Wir haben es "Kemp US West" genannt und überwachen in diesem Beispiel mit einer Frequenz von 20 Sekunden.
Nach dem Speichern gelangen Sie zu einem Bildschirm, auf dem Sie Ihren "Monitor" weiter konfigurieren können, wenn Sie dies für sinnvoll halten.
Verbinden Sie nun den soeben eingerichteten Monitor mit der Antwort 1.1.1.1 im Eintrag Kempexample.com. Suchen Sie die Kempexample.com in Ihren Zonen, klicken Sie auf Einstellungen für die Antwort 1.1.1.1, suchen Sie die Einstellung "up" (verfügbar) und klicken Sie auf das Stromkabel-Symbol rechts davon. Siehe unten:
Wählen Sie die NS1 Monitore aus dem Popup-Fenster, das oben auf Ihrem Bildschirm erscheint. Wählen Sie den Monitor Kemp US West. Er wird dann in der UP-Einstellung der Antwort 1.1.1.1 im DNS-Eintrag angezeigt. Führen Sie die gleichen Schritte durch, um einen Monitor zu erstellen und ihn der Antwort 2.2.2.2 (Rechenzentrum Atlanta) zuzuordnen.
Inzwischen sollte Ihr Eintrag wie folgt aussehen:
Der letzte Schritt bei der Zuordnung von Metadaten zu den Antworten besteht darin, einen Daten-Feed einzurichten, um Datenlast-Informationen von jedem der Kemp Load Balancer an die entsprechende DNS-Antwort zu senden.
Um dies einzurichten, navigieren Sie zur Registerkarte "Integrations" des Portals, klicken Sie auf "Services" und klicken Sie auf "Incoming Data Feeds" mit der Bezeichnung "API". Es erscheint ein Konfigurations-Popup.
In diesem Schritt wurde eine spezielle URL erstellt (siehe Screenshot oben), die verwendet werden kann, um Daten aus einer externen Quelle an die NS1-Plattform zu senden. Dieser Datenfeed wird mit der Antwort (1.1.1.1) verbunden, die dem West-US-Rechenzentrum entspricht.
Erstellen Sie einen zweiten Datenfeed für das Atlanta-Rechenzentrum (2.2.2.2). Nennen Sie ihn "kempuseast."
Geben Sie dem Datenfeed eine Bezeichnung (wie oben gezeigt) und klicken Sie auf "Create". Der Datenfeed wird auf dem nächsten Bildschirm angezeigt.
Gehen Sie zurück zu Ihrem DNS-Eintrag, wählen Sie die Antwort 1.1.1.1 und unter Einstellungen die Option "Connection Count". Klicken Sie auf den Datenfeed des LA-Rechenzentrums, der im Popup-Fenster erscheint, um ihn dem Connection Count für diese Antwort zuzuordnen.
Im nächsten Schritt konfigurieren Sie eine "high watermark" und eine "low watermark" (kritische Werte der Datenlast), die mit der tatsächlichen Anzahl der Verbindungen abgeglichen wird, die vom Datenfeed der Load Balancer gemeldet werden. Verwenden Sie im DNS-Eintrag in den Einstellungen das Bleistiftsymbol, um der Antwort 1.1.1.1 eine high und eine low watermark zuzuweisen. Der Eintrag sieht dann wie folgt aus:
Die "low watermark" stellt den Punkt dar, an dem das DNS anfängt, einen Teil des Datenverkehrs von dieser Antwort wegzuleiten, indem es die Anzahl der vom Datenfeed kommenden Verbindungen mit der "low watermark" vergleicht. Die "high watermark" stellt einen Grenzwert dar, bei dem der gesamte Datenverkehr von diesem Ort weggelenkt wird.
Wiederholen Sie den Vorgang, um den kempuseast-Datenfeed für das Rechenzentrum in Atlanta unter 2.2.2.2. zu verbinden und Grenzwerte einzurichten.
Schritt 3: Einrichten der Filterkette
In diesem letzten Schritt des Einrichtungsvorgangs wird die NS1-Filterkette so konfiguriert, dass der Datenverkehr gemäß der zu Beginn dieses Lösungsleitfadens beschriebenen Logik für das Traffic Management zu diesen Rechenzentren geleitet wird.
Konfigurieren Sie den Up/Down-Filter. Dadurch wird jedes ausgefallene Rechenzentrum von der weiteren Betrachtung ausgeschlossen.
Konfigurieren Sie den Geo-Routing-Filter, um die Antwort auszuwählen, die näher am Endbenutzer liegt.
Konfigurieren Sie das Load Shedding. Der Load Shedding-Filter vergleicht die Last, die von den Datenfeeds der Load Balancer gemeldet wird, mit den low und high watermarks, die mit der DNS-Antwort verbunden sind. Er lenkt den Datenverkehr schrittweise von den Rechenzentren weg, wenn sich deren Auslastung der high watermark nähert. Dieser Filter sorgt für eine bessere Verteilung des Datenverkehrs auf die zwei Datenzentren.
Die Konfigurationsschritte lauten wie folgt:
Klicken Sie auf dem Bildschirm, der den Datensatz Kempexample.com anzeigt, auf das "Add Filter"-Feld auf der linken Seite Ihres Bildschirms.
Es erscheint ein Popup-Fenster mit mehreren Auswahlmöglichkeiten. Wählen Sie "Telemetry and Health Checks" (Telemetrie- und Zustandsprüfungen).
Ziehen Sie den "up"-Filter nach rechts und legen Sie ihn im "Drop Filter Here"-Feld ab. Ziehen Sie dann "Shed Load" nach rechts.
Als nächstes verschieben Sie den "Shed Load"-Filter nach rechts.
Wählen Sie dann im Feld "Add Filter" die Option "Geographic" und verschieben Sie "Geotarget Regional" nach rechts.
Verschieben Sie unter "Traffic Management" den "Select First N"-Filter und legen Sie ihn auf der rechten Seite ab.
Ordnen Sie die Filter auf der rechten Seite in der Reihenfolge "Up", "Geotarget Regional", "Shed Load", "Select First N" neu an (siehe unten).
Klicken Sie auf "Save".
Ihr Setup sollte wie folgt aussehen:
Step 4: Einrichten des Feeds von den Kemp Load Balancern
An diesem Punkt ist die Einrichtung so konfiguriert, dass sie Berichts-Daten von den Kemp-Loadbalancern empfängt. Dazu muss ein POST-Befehl an die URL gesendet werden, die bei der Erstellung des Datenfeeds erstellt wurde. Die URL wird in den eingehenden Datenfeeds angezeigt, die Sie in Schritt 2 erstellt haben. Das Format dieses Befehls ist wie folgt:
$ POST -H "X-NSONE-Key: " -d '{"Kempuswest":{"connections":}}'
Der NSONE-Key ist ein API-Schlüssel, den Sie unter "Account/Settings" in Ihrem NS1-Konto erstellen. Der Schlüssel authentifiziert die API-Anfrage. Die ist die Anzahl der vom Load Balancer gemeldeten Verbindungen.
Der LoadMaster kann diese Informationen über seine REST-API bereitstellen. Die Kemp API-Dokumentation finden Sie hier:
https://docs.progress.com/bundle/loadmaster-interface-description-restful-api-ga
Im obigen Beispiel lautet der entsprechende API-Aufruf: stats
Dieser gibt XML vom LoadMaster zurück, das in etwa wie dieser Auszug aussehen würde (irrelevante Tags ausgeschlossen):
Das Feld, für das wir uns in unserem Beispiel interessieren, ist:
<ActiveConns>
Kemp bietet auch ein Python-SDK für den LoadMaster an, das hier verfügbar ist:
https://pypi.python.org/pypi/python-Kemptech-api
Dies ermöglicht einen unkomplizierten Aufruf, der jede beliebige Metrik von Interesse zurückgeben kann.
Weitere Informationen über das Python SDK finden Sie hier:
https://Kemptechnologies.com/blog/getting-started-Kemp-python-sdk
Jetzt können wir diese Daten verwenden, um unseren Aufruf an NS1 zu speisen.
Schritt 5: Setup testen
Es gibt mehrere Möglichkeiten, um zu testen, ob die Konfiguration das gewünschte Ergebnis erzielt. Eine Möglichkeit besteht darin, das unten stehende API-Skript zu verwenden, um die Anzahl der Verbindungen zu den einzelnen Rechenzentren, für die Sie Feeds erstellt haben, mit Hilfe des unten stehenden Code-Fragments zu ermitteln:
$ curl -X POST -H "X-NSONE-Key: " -d '{"Kempuswest":{"connections":600}}'
Feed URL: https://api.nsone.net/v1/feed/406e544d5a121b2f00e901206e5018a2
Nachfolgend können Sie mittels des folgenden Codes die Domäne 100 Mal abfragen und sehen, wie sich die Anzahl der Abfragen an die einzelnen Rechenzentren auf der Grundlage der Verbindungsmetrik, die Sie verwenden, verändert:
$ for i in {1..100}; do dig +short www.Kempexample.com. @dns1.p01.nsone.net.; done | sort | uniq -c
Für Ihre Testzwecke sollten Sie am besten mehrere DIG-Befehle von verschiedenen IP-Adressen aus erteilen und dabei die von den Load Balancern gemeldete Auslastung variieren. In der NS1 Knowledge Base finden Sie genauere Informationen darüber, wie Sie DIG zum Testen Ihrer DNS-Einrichtung verwenden können.
Fazit
Dieser Leitfaden zeigt ein Beispiel dafür, wie NS1 in Verbindung mit Kemp verwendet werden kann, um eine Lösung für ein Traffic Management mit globalem Load Balancing zu liefern. Aufgrund der Flexibilität, eingehende Metadaten zu empfangen, und der Vielseitigkeit der NS1-Filterkette, mit der die Daten verarbeitet werden können, gibt es viele weitere Anwendungsfälle, die unterstützt werden können. Solche Fälle sind:
- Load Balancing für mehrere Rechenzentren
- Richtlinienbasiertes Traffic Management
- Migration von Rechenzentren
Wenden Sie sich an Ihren NS1- oder Kemp-Vertreter, um Ihre speziellen Anforderungen zu besprechen.