Erstellen von globalen Lastverteilern

Wenn Sie eine E-Commerce-Website haben oder eine Anwendung hosten, die zugänglich bleiben muss, machen Sie sich wahrscheinlich Gedanken über deren Verfügbarkeit und Leistung.

Die globalen Load-Balancer-Funktionen von IBM Cloud Internet Services ( CIS ) tragen dazu bei, die Zuverlässigkeit und Skalierbarkeit von Anwendungen zu verbessern und gleichzeitig die bestmögliche Benutzererfahrung zu bieten.

Ein globaler Load Balancer verteilt den Benutzerverkehr über mehrere geografische Regionen, um die Verfügbarkeit und Leistung zu verbessern.

Sie können einen globalen Load Balancer über die Konsole, CLI, API oder Terraform konfigurieren.

Vorbereitende Schritte

  • Stellen Sie eine CIS-Instanz bereit.
  • Konfigurieren Sie Ihre Domain in CIS.
  • Ermitteln Sie die IP-Adressen oder FQDNs für Ihre Anwendungsherkunft.

CIS kann Load-Balancer-Pools unterstützen, die eine private IP-Adresse verwenden. Private IP-Pools unterstützen jedoch keine Proxy-Dienste oder Zustandsüberprüfungen; lediglich DNS-basierter Lastausgleich wird unterstützt. Für Pools mit öffentlichen IPs können Health Checks wie in (Schritt 1: Erstellen eines Health Checks ) beschrieben konfiguriert werden.

Schnellkonfiguration

Wenn Sie Ihre Pools und Gesundheitsprüfungen bereits kennen, können Sie sie bei der Erstellung eines Load Balancer inline erstellen:

  1. Klicken Sie in der Konsole CIS auf Zuverlässigkeit > Globale Lastverteiler > Ursprungspools und dann auf Erstellen.

  2. Geben Sie einen Poolnamen und Ursprünge ein und wählen Sie eine Statusprüfung aus.

    Sie können hier eine neue Gesundheitskontrolle anlegen, indem Sie im Menü der Liste der Gesundheitskontrollen die Option Neu anlegen wählen und die Informationen ausfüllen.

  3. Klicken Sie auf Speichern.

Die folgenden Schritte beschreiben das vollständige Verfahren zur Erstellung von Health Checks, Pools und einem globalen Load Balancer.

Erstellen eines globalen Load Balancers in der Konsole

Wenn Sie die Seite Globale Lastverteiler öffnen (Zuverlässigkeit > Globale Lastverteiler ), zeigt die Seite Registerkarten für LastverteilerSoftware oder Hardware, die die Workload innerhalb einer Servergruppe verteilt, um sicherzustellen, dass Server nicht überlastet werden., Ursprungspools, ZustandsprüfungenEin Prozess, der Systemressourcen und Bedingungen überwacht, um zu ermitteln, ob das System effizient ausgeführt wird. und Ereignisse. Auf diesen Registerkarten werden globale Load Balancer und ihre Komponenten angezeigt, wenn Sie sie erstellen oder aktualisieren.

In der folgenden Schritt-für-Schritt-Anleitung erfahren Sie, wie Sie eine Konfiguration ähnlich der in der folgenden Abbildung dargestellten einrichten. In diesem Beispiel werden die Anwendungsressourcen in zwei Rechenzentren (USA West und USA Ost) bereitgestellt, wobei die Benutzer weltweit auf die Anwendung zugreifen. Die Benutzer können auf diese Anwendung von einem beliebigen Standort auf der ganzen Welt zugreifen.

Gehen Sie folgendermaßen vor, um einen globalen Load Balancer in der Konsole zu erstellen und zu konfigurieren:

Schritt 1: Erstellen einer Gesundheitsprüfung (optional)

Statusprüfungen sind optionale Anhänge für Ursprungspools. Sie werden in einem konfigurierbaren Intervall ausgeführt, um auf einen bestimmten Antwortkörper oder Statuscode zu prüfen und den Zustand des Pools zu überwachen. Nachdem Sie eine Statusprüfung erstellt haben, können Sie sie zu einem neuen oder vorhandenen Ursprungspool hinzufügen.

Wenn Sie keine benutzerdefinierten Zustandsprüfungen festlegen, verwendet CIS / als Standardpfad für die Zustandsprüfung.

  1. Klicken Sie in der Konsole CIS auf Zuverlässigkeit > Globale Load Balancer > Zustandsprüfungen und dann auf Erstellen.

  2. Konfigurieren Sie die folgenden Felder:

    • Name: Name des Gesundheitschecks.
    • Monitor-Typ: Das für den Zustandscheck zu verwendende Protokoll. (Standard: HTTP).
    • Port: Klicken Sie auf die Pfeile, um die Portnummer zu erhöhen oder zu verringern.
    • Pfad: Der Endpunktpfad, an dem der Zustandscheck durchgeführt werden soll. (Standard: /)
  3. Erweitern Sie die erweiterten Optionen zur Konfiguration:

    • Testintervall: Das Intervall (in Sekunden) zwischen den einzelnen Statusprüfungen. Kürzere Intervalle können die Failover-Zeit verkürzen, erhöhen jedoch die Auslastung der Ursprungsserver, da die Überprüfungen von mehreren Standorten aus erfolgen. (Standard: 60).
    • Methode: Die für den Zustandscheck zu verwendende HTTP-Methode. (Standard: GET)
    • Zeitüberschreitung (Sekunden): Die Zeit, bevor die Zustandsprüfung als fehlgeschlagen gekennzeichnet wird. (Standard: 5)
    • Anzahl der Wiederholungsversuche: Die Anzahl der Wiederholungsversuche, die unternommen werden sollen, wenn ein Timeout auftritt, bevor der Ursprung als fehlerhaft markiert wird. CIS versucht, sofort wieder zu starten. (Standard: 2)
    • Erwartete Antwortcodes: Der erwartete Antwortcode oder Code-Bereich von HTTP für den Zustandscheck. Dieser Wert muss zwischen 200 und 299 liegen, wobei Platzhalter mit einem x. gekennzeichnet sind.
    • Antworttext: Eine Teilzeichenfolge, bei der Groß- und Kleinschreibung keine Rolle spielt und die im Antworttext gesucht wird. Wenn CIS diese Zeichenfolge nicht findet, wird der Ursprung als ungesund eingestuft.
    • Gesunder Schwellenwert: Die Anzahl der aufeinanderfolgenden erfolgreichen Antworten auf Gesundheitsprüfungen, die CIS erhalten muss, bevor ein Ursprung als gesund eingestuft wird. Diese Einstellung verhindert, dass CIS den Ursprung nach einer einzigen erfolgreichen Messung als gesund markiert und hilft, ein Flattern während der unterbrochenen Wiederherstellung zu vermeiden. (Standard: 1)
    • Ungesunder Schwellenwert: Die Anzahl der aufeinanderfolgenden fehlgeschlagenen Health Check-Antworten, die auftreten müssen, bevor CIS einen Ursprung als ungesund einstuft. Mit dieser Einstellung wird verhindert, dass vorübergehende Netzwerk- oder Anwendungsprobleme sofort ein Failover auslösen. (Standard: 1)
    • Weiterleitungen folgen: Legt fest, ob der Gesundheitscheck automatisch HTTP 3xx Umleitungsantworten folgt. Wenn diese Funktion aktiviert ist, wird die Zustandsprüfung an der umgeleiteten Stelle fortgesetzt und die endgültige Antwort anhand der konfigurierten Erfolgskriterien (Statuscode und optionaler Antworttext) bewertet. Wenn diese Funktion deaktiviert ist, werden die Umleitungsantworten direkt mit den erwarteten Antwortcodes verglichen.
  4. Erweitern Sie Anfragen-Header konfigurieren (optional), um HTTP-Anfrage-Header hinzuzufügen und zu konfigurieren, die im Health Check gesendet werden sollen.

    Legen Sie standardmäßig einen Host-Header fest. Die Kopfzeile User-Agent kann nicht überschrieben werden.

  5. Klicken Sie auf Erstellen, um die Konfiguration Ihrer Statusprüfung abzuschließen.

Arbeit mit Gesundheitscheck-Veranstaltungen

Verwenden Sie die Registerkarte Ereignisse, um Änderungen des Zustands von Ursprüngen und Pools, die mit einem globalen Load Balancer verbunden sind, zu überwachen und zu untersuchen. Health Check-Ereignisse stellen Statusänderungen dar, die von konfigurierten Health Checks erkannt werden. Wenn sich ein Herkunftsstatus ändert, wird ein entsprechender Ereigniseintrag mit Details angezeigt.

Die folgenden Filteroptionen stehen zur Verfügung:

  • Anfangsdatum: Filtert Ereignisse nach dem Beginn eines ausgewählten Datumsbereichs.
  • Enddatum: Filtert Ereignisse nach dem Ende eines ausgewählten Datumsbereichs.
  • Zustand des Ursprungs: Filtert Ereignisse nach Herkunftsstatus (z. B. Gesund oder Kritisch).
  • Ursprünge: Filtert Ereignisse nach einem bestimmten Ursprung.
  • Poolzustand: Filtert Ereignisse nach dem Pool-Status (z. B. "Gesund" oder "Kritisch").
  • Pools: Filtert Ereignisse nach einem bestimmten Herkunftspool.

Klicken Sie auf Zuverlässigkeit > Globale Load Balancer > Ereignisse, um die Ereignisse der Zustandsprüfung anzuzeigen.

Schritt 2: Erstellen eines Ursprungspools

Für jede bereitgestellte Lastausgleichsfunktion ist mindestens ein Pool erforderlich. Fasst die Ursprünge der Gruppen zusammen, die der Lastverteiler verwenden soll.

  1. Klicken Sie in der Konsole CIS auf Zuverlässigkeit > Globale Lastverteiler > Ursprungspools und dann auf Erstellen.

  2. Wählen Sie aus, ob dieser Pool aktiviert werden soll. Deaktivierte Pools erhalten keinen Datenverkehr und CIS schließt sie von Gesundheitsprüfungen aus. Wenn Sie einen Pool deaktivieren, gehen alle Load Balancer, die ihn verwenden, zum nächsten Pool über, sofern vorhanden.

  3. Konfigurieren Sie die erforderlichen Felder:

    • Name: Ein Kurzname (Tag) für den Pool. Es sind nur alphanumerische Zeichen, Bindestriche und Unterstreichungszeichen zulässig.
    • Ursprünge: Die Liste von Ursprüngen in diesem Pool. CIS verteilt den an diesen Pool gerichteten Datenverkehr gleichmäßig auf alle derzeit funktionsfähigen Ursprungsserver, sofern der Pool selbst funktionsfähig ist.

    Wenn sich Ihre Anwendungsserver hinter einem lokalen Load Balancer befinden, beispielsweise einem IBM Cloud-Load Balancer, geben Sie den FQDN oder die virtuelle IP-Adresse Ihres Load Balancers als Ursprung an, anstatt Ihre einzelnen Server hinzuzufügen.

  4. Konfigurieren Sie optionale Felder nach Bedarf:

    • Schwellenwert für Ursprünge in einwandfreiem Zustand: Die Mindestanzahl von Ursprüngen, die sich in einwandfreiem Zustand befinden müssen, damit dieser Pool Datenverkehr verarbeiten kann. Fällt die Anzahl der funktionsfähigen Ursprünge unter diesen Wert, stuft CIS den Pool als nicht funktionsfähig ein und wechselt zum nächsten verfügbaren Pool. (Standard: 1)
    • Region für den Pool-Zustandscheck: Region, von der aus der Zustandscheck die Überwachung durchführt.
    • Statusprüfung: Statusprüfung für die Prüfung von Ursprüngen in diesem Pool (Standard: Kein Zustandscheck )
  5. Klicken Sie auf Speichern, um die Konfiguration des Ursprungspools abzuschließen.

Der Ursprungspool wird anfänglich als Fehlerhaft dargestellt. Dieser Status ändert sich nach einer erfolgreichen Zustandsprüfung durch CIS in Healthy. Sie müssen möglicherweise Ihren Browser aktualisieren, damit die Statusänderung sichtbar wird.

Definieren Sie so viele Ursprungspools, dass ihre Anzahl der Anzahl der Anwendungsfarmen entspricht. Diese Farmen können sich innerhalb derselben oder in verschiedenen geografischen Regionen befinden.

Schritt 3: Konfigurieren Sie den globalen Load Balancer

Lastverteiler helfen dabei, den Datenverkehr auf mehrere Ursprungspools zu verteilen.

  1. Klicken Sie in der Konsole CIS auf Zuverlässigkeit > Globale Lastausgleiche > Lastausgleiche und dann auf Erstellen.

  2. Aktivieren Sie den Load Balancer.

  3. Stellen Sie für Proxy fest, ob der Datenverkehr die Sicherheits- und Leistungsfunktionen auf CIS durchläuft. Mit der Einstellung 'Aus' werden diese Systeme umgangen.

  4. Konfigurieren Sie die folgenden Informationen:

    • Name (optional): Der Name, der mit Ihrem Load Balancer verknüpft werden soll.

    • TTL: Lebensdauer (Time To Live) des DNS-Eintrags für die von dieser Lastausgleichsfunktion zurückgegebene IP-Adresse. Diese Option gilt nur für Nicht-Proxy-Lastausgleichsfunktionen. Andernfalls wird der Standardwert Automatic verwendet.

    • Verkehrssteuerung: Steuert, wie eingehende Benutzeranfragen auf die konfigurierten Ursprungspools verteilt werden, indem der Algorithmus festgelegt wird, den CIS verwendet, um zu entscheiden, welches Rechenzentrum (Pool) jede Anfrage bedient. Weitere Informationen finden Sie unter Optimierung der Verkehrslenkung.

    • Sitzungsaffinität: Leitet Datenverkehr immer über dieselbe Instanz des Performance and Metrics Service weiter. Diese Option ist nur verfügbar, wenn der Proxy aktiviert ist.

    • Geo-Routen: Eine Zuordnung von Regional- oder Ländercodes zu einer Liste von Pools (sortiert nach ihrer Failover-Priorität) für die angegebene Region. Alle nicht explizit definierten Regionen greifen auf die Standardpools zurück.

      IBM die geografischen Regionen von CIS unterscheiden sich von den Regionen, die verwendet. Einzelheiten zu den geografischen Regionen finden Sie unter Geolenkung.

  5. Klicken Sie auf Erstellen, um die Konfiguration des globalen Lastenausgleichs abzuschließen.

Schritt 4: Überprüfung der Konnektivität

Überprüfen Sie abschließend die Konnektivität zu Ihrer Anwendung, indem Sie in einem Browser auf den FQDN URL zugreifen.

Weitere Informationen zum Aktualisieren und Löschen von globalen Lastverteilern, Zustandsprüfungen und Ursprungspools in der Konsole finden Sie unter Verwalten von globalen Lastverteilern.

Konfigurieren der globalen Lastverteiler über die CLI

Um einen globalen Load Balancer über die CLI zu erstellen und zu konfigurieren, führen Sie die folgenden Schritte in dieser Reihenfolge aus:

  1. Erstellen Sie einen Zustandscheck. (optional)
  2. Erstellen Sie einen Ursprungspool.
  3. Erstellen Sie eine globale Lastausgleichsfunktion.

Schritt 1: Erstellen eines Gesundheitschecks über die CLI (optional)

Statusprüfungen sind optionale Anhänge für Ursprungspools. Wenn Sie keine benutzerdefinierten Zustandsprüfungen festlegen, verwendet das System / als Standardpfad für die Zustandsprüfung.

Um einen Zustandscheck über die CLI durchzuführen, führen Sie den folgenden Befehl aus:

ibmcloud cis glb-monitor-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

Dabei gilt:

--json

Die JSON-Datei oder JSON-Zeichenkette, die zur Beschreibung einer Gesundheitsprüfung verwendet wird. Erforderlich.

  • Das erforderliche Feld in JSON-Daten ist type.
    • type: Das für den Zustandscheck zu verwendende Protokoll. Gültige Werte sind HTTP, HTTPS, und TCP.
  • Die optionalen Felder sind description, timeout, retries, interval.
    • description: Eine Beschreibung des Zustandschecks.
    • timeout: Die Zeitüberschreitung (in Sekunden), nach der der Zustandscheck als fehlgeschlagen markiert wird.
    • retries: Die Anzahl der Wiederholungsversuche, die unternommen werden sollen, wenn es zu einem Timeout kommt, bevor der Ursprung als fehlerhaft markiert wird.
    • interval: Das Intervall zwischen den einzelnen Zustandsprüfungen.
  • Für eine Statusprüfung des Typs TCP. Zusätzliches erforderliches Feld ist port.
    • port: Der für den Zustandscheck zu verwendende Port TCP.
  • Für eine Statusprüfung des Typs HTTP/HTTPS. Zusätzliche optionale Felder sind port, expected_body, expected_codes, method, path, header, follow_redirects, allow_insecure.
    • port: Der für den Zustandscheck zu verwendende Port TCP.
    • expected_body: Eine Teilzeichenfolge, nach der im Antworttext gesucht wird (Groß-/Kleinschreibung spielt keine Rolle).
    • expected_codes: Der erwartete HTTP-Antwortcode oder Code-Bereich des Zustandschecks.
    • method: Die für den Zustandscheck zu verwendende Methode HTTP.
    • path: Der Endpunktpfad, anhand dessen der Zustandscheck durchgeführt werden soll.
    • header: Die HTTP-Request-Header, die im Health Check gesendet werden müssen.
    • follow_redirects: Folgen Sie Weiterleitungen, falls diese vom Ursprungsserver zurückgegeben werden.
    • allow_insecure: Das Zertifikat darf nicht validiert werden, wenn der Monitor HTTPS verwendet.
    • probe_zone: Weisen Sie diesen Monitor zu, um die angegebene Zone während der Überprüfung zu emulieren.

JSON-Beispieldaten:

Für HTTP/HTTPS:

{
  "description": "Health monitor of web service",
  "type": "https",
  "method": "GET",
  "path": "/health",
  "header": {
     "Host": [
        "example.com"
     ],
     "X-App-ID": [
        "abc123"
     ]
  },
  "timeout": 5,
  "retries": 2,
  "interval": 90,
  "follow_redirects": true,
  "allow_insecure": false,
  "expected_codes": "2xx",
  "expected_body": "alive",
  "probe_zone": "example.com"
}

Für TCP:

{
  "description": "Health monitor of TCP",
  "type": "tcp",
  "port": 80,
  "timeout": 5,
  "retries": 2,
  "interval": 90
}
-i, --instance

Instanzname oder ID. Wenn Sie den Instanznamen oder die ID nicht angeben, verwendet der Befehl die Kontextinstanz (ibmcloud cis instance-set INSTANCE).

--output

Das Ausgabeformat. Derzeit ist json der einzige unterstützte Wert.

Schritt 2: Erstellen eines Ursprungspools über die CLI

Um über die CLI einen Origin-Pool zu erstellen, führen Sie den folgenden Befehl aus:

ibmcloud cis glb-pool-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

Dabei gilt:

--json
Die JSON-Datei oder der JSON-String, der zur Beschreibung eines Ursprungspools verwendet wird. Erforderlich.
  • Die Pflichtfelder in den JSON-Daten sind name, origins und : check_regions
    • name: Ein Kurzname (Tag) für den Pool.
    • origins: Eine Liste der Ursprünge innerhalb dieses Pools.
    • check_regions: Eine Liste der Codes für geografische Regionen.
  • Die optionalen Felder sind description, minimum_origins, enabled, monitor.

JSON-Beispieldaten:

{
   "name": "us-pool",
   "description": "application server pool in US",
   "origins": [
      {
            "name": "us-app-dal01",
            "address": "1.1.1.1",
            "enabled": true,
            "header": {
               "host": ["test.com"]
            }
      },
      {
            "name": "us-app-dal02",
            "address": "2.2.2.2",
            "enabled": true,
            "header": {
               "host": ["example.com"]
            }
      }
   ],
   "minimum_origins": 1,
   "check_regions": [ "WNAM" ],
   "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",
   "enabled": true
}
-i, --instance
Instanzname oder ID. Wenn Sie den Instanznamen oder die ID nicht angeben, verwendet der Befehl die Kontextinstanz (ibmcloud cis instance-set INSTANCE).
--output
Das Ausgabeformat. Derzeit ist json der einzige unterstützte Wert.

Schritt 3: Erstellen eines globalen Load Balancers über die CLI

Um über die Befehlszeile einen globalen Load Balancer zu erstellen, führen Sie den folgenden Befehl aus:

cis glb-create DNS_DOMAIN_ID (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

Dabei gilt:

DNS_DOMAIN_ID
Die ID der DNS-Domäne. Erforderlich.
--json
Die JSON-Datei oder der JSON-String, der zur Beschreibung eines globalen Load Balancers verwendet wird. Erforderlich.
  • Die Pflichtfelder in den JSON-Daten sind name, fallback_pool, und : default_pools
    • name: Der DNS-Hostname, der Ihrem Load Balancer zugeordnet werden soll.
    • fallback_pool pool-ID: Die Pool-ID, die verwendet wird, wenn CIS alle anderen Pools als ungesund erkennt.
    • default_pools: Eine Liste von Pool-IDs, sortiert nach ihrer Failover-Priorität.
  • Die optionalen Felder sind description, ttl, region_pools, proxied, enabled, session_affinity, session_affinity_ttl, steering_policy:
    • description: Eine Beschreibung Ihres Lastverteilers.
    • ttl: Time-to-Live (TTL) des DNS-Eintrags für die IP-Adresse, die dieser Load Balancer zurückgibt.
    • region_pools: Eine Zuordnung von Regions- und Ländercodes zu einer Liste von Pool-IDs (sortiert nach ihrer Failover-Priorität) für die jeweilige Region.
    • proxied: Legen Sie fest, ob der Datenverkehr die Sicherheits- und Leistungsfunktionen auf CIS durchläuft.
    • enabled: Ob dieser Lastverteiler aktiviert werden soll (Standardeinstellung).
    • session_affinity CIS: Stellt sicher, dass die Anfragen eines Benutzers während einer Sitzung immer an denselben Backend-Server weitergeleitet werden. Gültige Werte sind cookie und none.
    • session_affinity_ttl zeit in Sekunden, bis das Session Affinity Cookie dieses Load Balancers abläuft, nachdem CIS es erstellt hat. Der gültige Wert liegt zwischen [1800, 604800]. Der Standardwert ist 82800.
    • steering_policy: Gültige Werte für sind steering_policy off, geo, random, dynamic_latency.
      • off: Verwenden Sie default_pools.
      • geo: Verwenden Sie region_pools/pop_pools.
      • random: Wählen Sie einen Pool nach dem Zufallsprinzip aus.
      • dynamic_latency: Verwenden Sie die Round-Trip-Zeit, um den nächstgelegenen Pool auszuwählen ( default_pools erfordert Pool-Zustandsprüfungen).

JSON-Beispieldaten:

{
      "name": "www.example.com",
      "fallback_pool": "17b5962d775c646f3f9725cbc7a53df4",
      "default_pools": [
         "17b5962d775c646f3f9725cbc7a53df4",
         "9290f38c5d07c2e2f4df57b1f61d4196"
      ],
      "description": "Example global load balancer.",
      "ttl": 60,
      "region_pools": {
         "WNAM": [
               "de90f38ced07c2e2f4df50b1f61d4194",
               "9290f38c5d07c2e2f4df57b1f61d4196"
         ],
         "ENAM": [
               "00920f38ce07c2e2f4df50b1f61d4194"
         ]
      }
}
-i, --instance
Instanzname oder ID. Wenn Sie den Instanznamen oder die ID nicht angeben, verwendet der Befehl die Kontextinstanz (ibmcloud cis instance-set INSTANCE).
--output
Das Ausgabeformat. Derzeit ist json der einzige unterstützte Wert.

Weitere Informationen zum Erstellen, Aktualisieren und Löschen von globalen Load Balancern, Health Checks und Origin Pools finden Sie unter Globale Load Balancer CLI-Befehle.

Konfigurieren der globalen Lastverteiler mit der API

Um einen globalen Load Balancer mit der API zu erstellen und zu konfigurieren, führen Sie die folgenden Schritte in dieser Reihenfolge aus:

  1. Erstellen Sie einen Zustandscheck. (optional)
  2. Erstellen Sie einen Ursprungspool.
  3. Erstellen Sie eine globale Lastausgleichsfunktion.

Schritt 1: Erstellen einer Gesundheitsprüfung mit der API (optional)

Statusprüfungen sind optionale Anhänge für Ursprungspools. Wenn Sie keine benutzerdefinierten Zustandsprüfungen festlegen, verwendet das System / als Standardpfad für die Zustandsprüfung.

Gehen Sie folgendermaßen vor, um eine Gesundheitsprüfung mit der API zu erstellen:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. Speichern Sie den folgenden Wert in Variablen, die im API-Befehl verwendet werden sollen:

CRN: Der vollständige URL-codierte CRN der Serviceinstanz.

  1. Wenn alle Variablen initialisiert sind, erstellen Sie den Zustandscheck:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/monitors
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "type": "http",
        "interval": 60,
        "retries": 2,
        "timeout": 5,
        "expected_body": "",
        "expected_codes": "200",
        "follow_redirects": true,
        "allow_insecure": false,
        "path": "/status",
        "header": {
     	   "Host": ["www.example.com"],
     	   "X-App-ID": ["abc123"]
        },
        "method": "GET"
    }'
    

Schritt 2: Erstellen eines Ursprungspools mit der API

Gehen Sie wie folgt vor, um einen Ursprungspool mit der API zu erstellen:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. Speichern Sie den folgenden Wert in Variablen, die im API-Befehl verwendet werden sollen:

CRN: Der vollständige URL-codierte CRN der Serviceinstanz.

  1. Wenn alle Variablen initialisiert sind, erstellen Sie den Ursprungspool:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/pools
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "enabled": true,
        "minimum_origins": 1,
        "monitor": "92859a0f6b4d3e55b953e0e29bb96338",
        "name": "eu-pool",
        "notification_email": "",
        "check_regions": [
            "EEU"
        ],
        "origins": [
            {
                "name": "eu-origin1",
                "address": "150.0.0.1",
                "enabled": true,
                "weight": 1
            },
            {
                "name": "eu-origin2",
                "address": "150.0.0.2",
                "enabled": true,
                "weight": 1
            }
        ]
    }'
    

Schritt 3: Erstellen eines globalen Lastausgleichs mit der API

Gehen Sie folgendermaßen vor, um einen globalen Load Balancer mit der API zu erstellen:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:

CRN: Der vollständige URL-codierte CRN der Serviceinstanz.

ZONE_ID: Die Domänen-ID.

  1. Wenn alle Variablen initiiert sind, erstellen Sie die globalen Lastverteiler:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/load_balancers
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "proxied": true,
        "enabled": true,
        "name": "www.example.com",
        "session_affinity": "none",
        "session_affinity_ttl": 5000,
        "steering_policy": "geo",
        "fallback_pool": "4112ba6c2974ec43886f90736968e838",
        "default_pools": [
         "6563ebae141638f92ebbdc4a821bef8c",
         "4112ba6c2974ec43886f90736968e838"
        ],
        "pop_pools": {},
        "region_pools": {
            "EEU": [
                "4112ba6c2974ec43886f90736968e838"
            ],
            "ENAM": [
                "6563ebae141638f92ebbdc4a821bef8c"
            ],
            "WEU": [
                "4112ba6c2974ec43886f90736968e838"
            ],
            "WNAM": [
                "6563ebae141638f92ebbdc4a821bef8c"
            ]
        }
    }'
    

Weitere Informationen zum Erstellen, Aktualisieren und Löschen von globalen Lastverteilern, Zustandsprüfungen und Ursprungspools finden Sie unter API Globaler Lastverteiler.

Konfiguration von globalen Lastverteilern mit Terraform

Bevor Sie beginnen, stellen Sie sicher, dass Sie die Schritte zur Einrichtung von Terraform für CIS abgeschlossen haben.

Um einen globalen Load Balancer mit Terraform zu erstellen und zu konfigurieren, führen Sie die folgenden Schritte der Reihe nach aus:

  1. Statusprüfung erstellen
  2. Einen Herkunftspool erstellen
  3. Globale Lastausgleichsfunktion erstellen

Schritt 1: Erstellen eines Gesundheitschecks mit Terraform (optional)

Statusprüfungen sind optionale Anhänge für Ursprungspools. Wenn Sie keine benutzerdefinierten Zustandsprüfungen festlegen, verwendet das System / als Standardpfad für die Zustandsprüfung.

Um einen Gesundheitscheck mit Terraform zu erstellen, verwenden Sie die Ressource ibm_cis_healthcheck:

resource "ibm_cis_healthcheck" "health_check" {
  cis_id         = ibm_cis.instance.id
  description    = "Health check for web servers"
  expected_body  = "alive"
  expected_codes = "200"
  method         = "GET"
  timeout        = 5
  path           = "/health"
  interval       = 60
  retries        = 2
  type           = "http"
  port           = 80
  allow_insecure = false
  follow_redirects = true
}

Schritt 2: Erstellen eines Ursprungspools mit Terraform

Um einen Ursprungspool mit Terraform zu erstellen, verwenden Sie die Ressource ibm_cis_origin_pool:

resource "ibm_cis_origin_pool" "origin_pool" {
  cis_id = ibm_cis.instance.id
  name   = "us-pool"
  origins {
    name    = "us-app-dal01"
    address = "1.1.1.1"
    enabled = true
  }
  origins {
    name    = "us-app-dal02"
    address = "2.2.2.2"
    enabled = true
  }
  description        = "Application server pool in US"
  enabled            = true
  minimum_origins    = 1
  monitor            = ibm_cis_healthcheck.health_check.id
  notification_email = ""
  check_regions = [
    "WNAM"
  ]
}

Schritt 3: Erstellen eines globalen Load Balancers mit Terraform

Um einen globalen Load Balancer mit Terraform zu erstellen, verwenden Sie die Ressource ibm_cis_global_load_balancer:

resource "ibm_cis_global_load_balancer" "global_load_balancer" {
  cis_id           = ibm_cis.instance.id
  domain_id        = ibm_cis_domain.domain.id
  name             = "www.example.com"
  fallback_pool_id = ibm_cis_origin_pool.origin_pool.id
  default_pool_ids = [
    ibm_cis_origin_pool.origin_pool.id
  ]
  description      = "Global load balancer for example.com"
  proxied          = true
  enabled          = true
  session_affinity = "cookie"
  steering_policy  = "geo"
  pop_pools {
    pop = "LAX"
    pool_ids = [
      ibm_cis_origin_pool.origin_pool.id
    ]
  }
  region_pools {
    region = "WNAM"
    pool_ids = [
      ibm_cis_origin_pool.origin_pool.id
    ]
  }
}

Weitere Informationen zu den Terraform-Ressourcen für globale Load Balancer, Health Checks und Origin Pools finden Sie unter den folgenden Ressourcen in der IBM Cloud Provider Terraform Registry: