Einrichten eines Private Path-Netzwerk-Load-Balancers

Sie können eine Netzlastausgleichsfunktion für private Pfade (NLB) nur mit einem Service für private Pfade verwenden. Erstellen Sie den Private Path NLB auf der Seite Load Balancers for VPC oder als Teil des Private Path Service Provisioning-Prozesses. Sie können einen Private Path Network Load Balancer über die Konsole, CLI, API oder Terraform erstellen.

Private Path ermöglicht es Dienstanbietern, private Konnektivität für die Nutzer ihres gehosteten Dienstes zu aktivieren und zu verwalten. Der Privatpfaddienst erfordert einen Privatpfad-NLB, um eine sichere Verbindung mit dem Virtual Private Endpoint (VPE)-Gateway eines jeden Kunden herzustellen. Weitere Informationen finden Sie unter Informationen zu privaten Pfadservices.

NLBs mit privatem Pfad unterstützen die Funktion des Portbereichs. Gegenwärtig können alle an einen NLB mit privatem Pfad angeschlossenen VPEs eine Verbindung zu einem beliebigen Anschluss in diesem Bereich herstellen. Weitere Informationen finden Sie unter Einstellen der Portbereiche für den Load Balancer des öffentlichen Netzwerks.

Vorbereitende Schritte

Überprüfen Sie die folgenden Anforderungen, um sicherzustellen, dass Ihr Private Path NLB ordnungsgemäß konfiguriert ist:

  • Falls Sie noch keine VPC haben, richten Sie eine in derselben Region ein, in der Sie Ihren Private Path NLB erstellen möchten. Verwenden Sie dieselbe VPC-Region für den Service „Private Path NLB“ und „Private Path“'.
  • Erstellen Sie Ihre virtuellen Serverinstanzen, bevor Sie einen Private Path NLB erstellen. Dadurch wird sichergestellt, dass es voll funktionsfähig ist.
  • Stellen Sie sicher, dass Ihre ausgewählte VPC mindestens ein Subnetz enthält.

Sie können einen Private Path Network Load Balancer über die Konsole, CLI, API oder Terraform erstellen.

Erstellen eines Private Path Network Load Balancer in der Konsole

Um „ Network Load Balancer for VPC “ in der „ IBM Cloud “-Konsole zu erstellen und zu konfigurieren, führen Sie die folgenden Schritte aus:

  1. Öffnen Sie im Browser die IBM Cloud-Konsole und melden Sie sich bei Ihrem Konto an.

  2. Wählen Sie das Navigationsmenü „ Menüsymbol“ und klicken Sie dann auf das Symbol „Infrastruktur -VPC“ > „Netzwerk“ > „Lastenausgleich“.

  3. Klicken Sie in der rechten oberen Ecke der Seite auf Erstellen.

  4. Wählen Sie als Typ der Lastausgleichsfunktion die Kachel Netzlastausgleichsfunktion aus.

  5. Bearbeiten Sie im Abschnitt 'Position' bei Bedarf die folgenden Felder.

    • Geografie: Die Geografie, in der Sie die Lastausgleichsfunktion erstellen wollen
    • Region: Die Region, in der Sie die Lastausgleichsfunktion erstellen wollen
  6. Geben Sie im Abschnitt 'Details' die folgenden Informationen an:

    • Name: Geben Sie einen Namen für den Load Balancer ein, z. B. „ private-path-load-balancer “.
    • Ressourcengruppe: Wählen Sie eine Ressourcengruppe für die Lastausgleichsfunktion aus.
    • Tags: (Optional) Fügen Sie Tags hinzu, um Ihre Ressourcen besser zu organisieren und wiederzufinden. Sie können später weitere Tags hinzufügen. Weitere Informationen finden Sie im Abschnitt Mit Tags arbeiten.
    • Zugriffsmanagementtags: (Optional) Fügen Sie Zugriffsmanagementtags zu Ressourcen hinzu, um die Organisation von Zugriffssteuerungsbeziehungen zu unterstützen. Das einzige unterstützte Format für Zugriffsverwaltungstags ist key:value. Weitere Informationen finden Sie unter Zugriff auf Ressourcen mithilfe von Tags steuern.
    • Virtuelle private Cloud: Wählen Sie die VPC aus, auf der Sie die Lastausgleichsfunktion bereitstellen möchten.
    • Subnetz: Wählen Sie ein Subnetz aus.
    • Typ: Wählen Sie Privater Pfad.
  7. Klicken Sie im Abschnitt Backend-Pools auf Pool erstellen, geben Sie die folgenden Informationen an und klicken Sie dann auf Erstellen. Sie können einen oder mehrere Pools erstellen.

    • Geben Sie einen eindeutigen Namen für den Pool ein, z. B. „ private-path-pool “.

    • Wählen Sie ein Protokoll für Ihre Instanzen in diesem Pool aus. Das Protokoll für den Pool muss mit dem Protokoll für den zugehörigen Listener übereinstimmen. Wenn es sich bei dem Listener beispielsweise um TCP handelt, muss das Protokoll des Pools 'TCP' sein.

    • Wählen Sie aus den folgenden Optionen die Methode aus, bei der es sich um den Lastausgleichsalgorithmus handelt.

      • Umlauf: Anforderungen werden im Umlaufverfahren nacheinander an die einzelnen Instanzen weitergeleitet. Auf diese Weise erhalten alle Instanzen ungefähr gleich viele Clientverbindungen.
      • Gewichteter Umlauf: Anforderungen werden gemäß der zugeordneten Gewichtung an die einzelnen Instanzen weitergeleitet. Wenn Sie beispielsweise über die Instanzen A, B und C verfügen und ihre Gewichtungen auf 60, 60 und 30 gesetzt sind, erhalten die Instanzen A und B eine gleiche Anzahl von Verbindungen und die Instanz C erhält halb so viele Verbindungen.
    • Wählen Sie Session Stickiness und dann None aus.

    • Geben Sie die folgenden Statusprüfungsoptionen ein:

      • Pfad für den Zustandscheck – Der Pfad für den Zustandscheck ist nur dann relevant, wenn Sie „ HTTP “ als Protokoll für den Zustandscheck auswählen. Der Pfad für Statusprüfung gibt die URL an, die von der Lastausgleichsfunktion verwendet wird, um die HTTP-Anforderungen für die Statusprüfung an die Instanzen im Pool zu senden. Standardmäßig werden Statusprüfungen an den Rootpfad (/) gesendet.

      • Statusprotokoll: Gibt an, welches Protokoll von der Lastausgleichsfunktion verwendet wird, um Nachrichten für Statusprüfungen an die Instanzen im Pool zu senden.

      • Health-Port (optional) – Der Port, über den Health-Check-Anfragen gesendet werden sollen. Standardmäßig werden Statusprüfungen über denselben Port gesendet, der auch für den Datenverkehr an die Instanz verwendet wird.

      • Intervall (Sek.) – Das Intervall in Sekunden zwischen zwei aufeinanderfolgenden Versuchen eines Zustandschecks.

      • Timeout (Sek.) – Die maximale Zeit, die das System auf eine Antwort auf eine Zustandsprüfungsanfrage wartet.

      • Maximale Anzahl von Wiederholungsversuchen – Die maximale Anzahl von Zustandsprüfungsversuchen, die der Load Balancer durchführt, bevor eine Instanz als fehlerhaft eingestuft wird. Standardmäßig wird für eine Instanz nach zwei fehlgeschlagenen Statusprüfungen ein nicht einwandfreier Zustand attestiert.

        Obwohl die Lastausgleichsfunktion keine weiteren Verbindungen an Instanzen sendet, die keinen einwandfreien Status aufweisen, wird der Status dieser Instanzen weiterhin von der Lastausgleichsfunktion überwacht und die Instanzen werden wieder verwendet, sobald sie wieder in einwandfreiem Zustand sind (d. h. sobald sie zwei aufeinanderfolgende Statusprüfungen erfolgreich bestanden haben).

      Wenn Instanzen im Pool einen fehlerhaften Zustand aufweisen und Sie davon ausgehen, dass Ihre Anwendung ordnungsgemäß funktioniert, überprüfen Sie noch einmal die Werte für das Health-Protokoll und den Health-Pfad. Außerdem sollten Sie alle Sicherheitsgruppen überprüfen, die den Instanzen zugeordnet sind, um sicherzustellen, dass die Regeln den Datenverkehr zwischen der Lastausgleichsfunktion und den Instanzen zulassen.

  8. (Optional) Wählen Sie „Anfrageeinstellungen“, um die Werte für die Zustandsprüfungsanfragen anzupassen. Wenn keine Werte angegeben werden, werden die Standardeinstellungen verwendet.

    • Anfragemethode: Wählen Sie eine der folgenden Optionen: GET oder POST. Sie können die Request-Header für beide Methoden anpassen. Optional können Sie den Request-Body anpassen, während Sie die Methode „ POST “ verwenden.
    • Anfragetext: Fügen Sie den Anfragetext „ HTTP “ ein, der für die Zustandsprüfungen verwendet werden soll. Sofern nicht anders angegeben, enthalten Health-Check-Anfragen keinen Anfragetext.
    • Host-Header: Fügen Sie den Host-Header ein, um sicherzustellen, dass die Anfrage das HTTP/1.1-Protokoll verwendet. Andernfalls wird standardmäßig „ HTTP/1.0 “ verwendet.
    • Weitere Request-Header hinzufügen: Fügen Sie einen oder mehrere zusätzliche Request-Header hinzu.
    • Name der Kopfzeile: Wählen Sie für die Anforderungsmethode „ GET “ eine der folgenden Optionen aus: „ content-type “, „ accept “, „ authorization “, „ cookie “, „ origin “, „ referrer “ oder „ user-agent “. Wählen Sie für die Anforderungsmethode „ POST “ eine der folgenden Optionen aus: „ content-type “, „ content-length “, „ application-json “ oder „ accept-encoding “.
    • Wert: Geben Sie den Wert ein, der dem angegebenen Header-Namen entspricht.

    Bei Private Path Network Load Balancers (PPNLBs) liegt ein bekanntes Problem vor, bei dem die Felder für die Anfrage und die Antwort des Zustandsmonitors nicht in der GET-API-Antwort zurückgegeben werden.

  9. (Optional) Wählen Sie „Antwort-Einstellungen“, um die Antwortwerte für den Zustandscheck anzupassen. Wenn keine Werte angegeben werden, werden die Standardeinstellungen verwendet.

    • Antworttext: Geben Sie den Text der Antwort ein.

    • Antwortcode: Sie können mehrere durch Kommas getrennte Werte im Bereich von 100 bis 599 angeben. Um einen Bereich anzugeben, verwenden Sie XX. Zum Beispiel „ 2XX “ für die Zahlen 200–299.

      HTTP übermittelt Daten als Klartext, der abgefangen werden kann und als unsicher gilt. Als Protokoll wird https anstelle von http empfohlen. Weitere Informationen finden Sie unter „ Warum ist HTTP nicht sicher? “.

      Obwohl die Lastausgleichsfunktion keine weiteren Verbindungen an Instanzen sendet, die keinen einwandfreien Status aufweisen, wird der Status dieser Instanzen weiterhin von der Lastausgleichsfunktion überwacht und die Instanzen werden wieder verwendet, sobald sie wieder in einwandfreiem Zustand sind (d. h. sobald sie zwei aufeinanderfolgende Statusprüfungen erfolgreich bestanden haben).

      Wenn Instanzen im Pool nicht einwandfrei sind und Sie der Auffassung sind, dass Ihre Anwendung dennoch ordnungsgemäß ausgeführt wird, überprüfen Sie das Statusprotokoll und die Statuspfadwerte. Außerdem sollten Sie alle Sicherheitsgruppen überprüfen, die den Instanzen zugeordnet sind, um sicherzustellen, dass die Regeln den Datenverkehr zwischen der Lastausgleichsfunktion und den Instanzen zulassen.

  10. Sie können Ihrem Back-End-Pool jetzt oder nach der Erstellung Ihres Private Path NLB Mitglieder hinzufügen. Klicken Sie auf Anhängen in der Tabellenzeile Ihres Backend-Pools. Geben Sie die folgenden Informationen ein und klicken Sie anschließend auf „ Anhängen “.

    • Mitgliedstyp: Fügen Sie virtuelle Serverinstanzen, reservierte IPs oder einen Application Load Balancer als Mitglied hinzu. Bei virtuellen Serverinstanzen fügen Sie jeden Typ einzeln hinzu. Ein reserviertes IP-Mitglied kann an einen Bare Metal Server, eine primäre oder sekundäre Schnittstelle einer virtuellen Serverinstanz oder eine virtuelle Netzwerkschnittstelle gebunden sein.

      Wenn Sie einen ALB als Mitgliedsziel an einen NLB-Pool mit privatem Pfad anhängen, können keine weiteren Mitglieder zu diesem Pool hinzugefügt werden.

    • Teilnetz: Wählen Sie ein Teilnetz aus.

    • Wählen Sie in der Serverliste die Server aus, die Sie dem Back-End-Pool zuordnen möchten. Stellen Sie sicher, dass Sie gültige Werte für jeden Server-Port angeben.

      Ihr „Private Path“-Load-Balancer bietet regionale Verfügbarkeit und ist gegenüber Zonenausfällen widerstandsfähig, selbst wenn nur ein einziges Subnetz ausgewählt ist.

    Sie müssen nicht mehrere Private Path Load Balancer erstellen oder mehr als ein einzelnes Subnetz angeben, um die Ausfallsicherheit einer Zone zu gewährleisten. Die Auswahl des Subnetzes wirkt sich nur auf die IP-Adressen aus, die mit dem Load Balancer verbunden sind. Weitere Informationen darüber, wie viele virtuelle Serverinstanzen Sie einem Backend-Pool zuordnen können, finden Sie unter Kontingente und Service-Limits für Private Path Network Load Balancer.

    Sie können beigetretene Mitglieder bearbeiten, indem Sie in der Back-End-Pools-Tabelle in der Zeile des Mitglieds, das Sie bearbeiten möchten, auf das Symbol "Bearbeiten" klicken. Sie können auch angehängte Mitglieder löschen, indem Sie das Minus-Symbol in der Zeile des Mitglieds auswählen, das Sie löschen möchten.

  11. Klicken Sie im Abschnitt "Front-End-Hörer" auf "Erstellen ", geben Sie die folgenden Informationen an und klicken Sie dann auf "Erstellen ". Sie können einen oder mehrere Listener erstellen.

    • Standard-Backend-Pool – Der Standard-Backend-Pool, an den dieser Listener den Datenverkehr weiterleitet.
    • Listener-Protokoll – Das Protokoll, das zum Empfangen eingehender Anfragen verwendet wird ( TCP ).
    • Listening-Port – Der Port, auf dem Anfragen empfangen werden.
  12. Überprüfen Sie die Bestellübersicht und klicken Sie anschließend auf „Erstellen“, um Ihre Bestellung abzuschließen.

Erstellen eines Private Path Network Load Balancer über die CLI

Das folgende Beispiel veranschaulicht die Erstellung eines Private Path NLB über die CLI. In diesem Beispiel ist der Private Path NLB vor einer virtuellen VPC-Serverinstanz (ID 0716_6acdd058-4607-4463-af08-d4999d983945) geschaltet, auf der ein „ TCP “-Server läuft, der auf dem Port 9090 lauscht. Die Lastausgleichsfunktion verfügt über einen Front-End-Listener, was einen sicheren Zugriff auf den TCP-Server ermöglicht.

Gehen Sie folgendermaßen vor, um einen NLB mit privatem Pfad über die Befehlszeile zu erstellen:

  1. Konfigurieren Sie die Umgebung der Befehlszeilenschnittstelle.

  2. Melden Sie sich über die CLI bei Ihrem Konto an. Nachdem Sie das Passwort eingegeben haben, werden Sie vom System aufgefordert, das gewünschte Konto und die gewünschte Region auszuwählen:

    ibmcloud login --sso
    
  3. Einen privaten Path-NLB erstellen:

    ibmcloud is load-balancer-create ppnlb-test private-path --subnet cli-subnet-1 --family network
    

    Beispielausgabe:

    Creating load balancer ppnlb-test in resource group under account IBM Cloud Network Services as user test@ibm.com...
    
     ID
     Name               ppnlb-test
     CRN
     Family             Network
     Host name
     Subnets            ID                                          Name
                                                                    cli-subnet-2
    
     Public IPs
     Reserved IPs         ID                                          Address        Subnet
    
     Provision status   create_pending
     Operating status   offline
     Is public          false
     Is private path    true
     Listeners
     Pools              ID                                 Name
                                                           my-pool
     Resource group     ID                                 Name
                                                           Default
    
     Created            2025-01-10T15:07:53+05:30
     Availability                 region
     Instance Group Supported     false
     SourceIP Session Supported   false
     Security groups supported    false
     UDP Supported                false
     Access mode                  private_path
    
  4. Erstellen Sie einen Pool:

    ibmcloud is load-balancer-pool-create my-pool pp-nlb-test round_robin tcp 20 2 5 http
    

    Beispielausgabe:

    Creating pool my-pool of load balancer my-pool under account IBM Cloud Network Services as user test@ibm.com...
    
    ID
    Name                       my-pool
    Protocol                   tcp
    Algorithm                  round_robin
    Instance group             ID   Name
                               -    -
    Proxy protocol        disabled
    Health monitor             Type   Port   Health monitor URL   Delay   Retries   Timeout
                               http   -      /                    20      2         5
    
    Session persistence type   Type   Cookie name
                               -      -
    
    Members
    Provision status           create_pending
    Created                    2025-01-10T20:44:57+05:30
    
  5. Mitglied erstellen:

    ibmcloud is load-balancer-pool-member-create test-ppnlb-1 test 3000 my-target
    

    Ein Benutzer kann einen Private Path NLB erstellen, der auf eine virtuelle Serverinstanz, eine reservierte IP oder einen Application Load Balancer (ALB) abzielt. Erstellen Sie ein Mitglied mit my-target als my-instance oder my-alb.

    Beispielausgabe:

    Creating member of pool test under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 test
    Port               3000
    Target             10.240.66.14
    Weight             50
    Health             unknown
    Created            0001-01-01T05:53:28+05:53
    Provision status   create_pending
    
  6. Listener erstellen:

    ibmcloud is load-balancer-listener-create ppnlb-test --port-min 443 --protocol tcp
    

    Beispielausgabe:

    Creating listener of load balancer ppnlb-test under account IBM Cloud Network Services as user test@ibm.com...
    
    ID
    Certificate instance      -
    Connection limit          -
    Ports                     443
    Idle connection timeout   -
    Protocol                  tcp
    Default pool              -
    Accept proxy protocol     false
    Provision status          create_pending
    Created                   2025-01-10T21:02:37+05:30
    
  7. Rufen Sie die Details zur Lastausgleichsfunktion ab:

    ibmcloud is load-balancer ppnlb-test
    

    Beispielausgabe:

    Getting load balancer ppnlb-test under account IBM Cloud Network Services as user test@ibm.com...
    
    ID
    Name               ppnlb-test
    CRN
    Family             Network
    Host name
    Subnets            ID                                          Name
                                                                   nlb
    
    Public IPs
    Reserved IPs       ID                                          Address        Subnet
    Provision status   active
    Operating status   online
    Is public          false
    Is private path    true
    Listeners
    Pools              ID                                          Name
                                                                   my-pool
    
    Resource group     ID                                 Name
                                                          Default
    
    Created                      2025-01-10T15:07:53+05:30
    Availability                 region
    Instance Group Supported     false
    SourceIP Session Supported   false
    Security groups supported    false
    UDP Supported                false
    Access mode                  private_path
    

Erstellen eines Netzwerk-Load-Balancers über die API

Das folgende Beispiel veranschaulicht die Erstellung eines Private Path NLB mit der API. Die hier detaillierte NLB befindet sich vor zwei virtuellen VPC-Serverinstanzen (192.168.100.5 und 192.168.100.6), die eine Webanwendung ausführen, die am Port 80 empfangsbereit ist. Es verfügt über einen Frontend-Listener, der den sicheren Zugriff auf die Webanwendung über HTTPS ermöglicht.

In diesem Beispiel werden die vorbereitenden Schritte zur Nutzung der API für die Bereitstellung einer VPC, von Subnetzen und Instanzen übersprungen.

Gehen Sie folgendermaßen vor, um einen NLB mit privatem Pfad mit der API zu erstellen:

  1. Richten Sie die API-Umgebung ein.

  2. Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:

    • subnetId-Zuerst das Teilnetz abrufen und dann die Variable füllen:
    export subnetId=<your_subnet_id>
    
    • targetId- Zweitens: Holen Sie sich die virtuelle Serverinstanz, die reservierte IP oder den Application Load Balancer (ALB), der sich in derselben VPC befindet wie das Subnetz:
    export targetId=<your_target_id>
    
  3. Erstellen Sie einen privaten Path-NLB mit einem Listener, einem Pool und zugeordneten Serverinstanzen (Pool-Mitglieder):

    curl -H "Authorization: Bearer $iam_token" -X POST
    "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \
        -d '{
         "is_public": false,
         "is_private_path": true,
         "name": "my-load-balancer",
         "listeners": [
             {
                 "default_pool": {
                     "name": "my-pool"
                 },
                 "port_min": 80,
                 "port_max": 80,
                 "protocol": "tcp"
             }
         ],
         "subnets": [
             {
                 "id" : "$subnetId"
             }
         ],
         "pools": [
             {
                 "algorithm": "round_robin",
                 "health_monitor": {
                     "delay": 2,
                     "max_retries": 1,
                     "timeout": 1,
                     "port": 80,
                     "type": "tcp"
                 },
                 "name": my-pool",
                 "protocol": "tcp",
                 "members" : [
                     {
                         "port" : 80,
                         "target" : {"id" : "$targetId"}
                     }
                 ]
             }
         ],
         "profile": {
             "name": "network-private-path"
         }
     }'
    

    Beispielausgabe:

         {
             "availability": "region",
             "created_at": "2023-09-22T21:49:26.000Z",
             "crn": "crn:v1:bluemix:public:is:au-syd:a/b21af5a9874242b7851e780943d595a9::load-balancer:r026-d-86b51a9e-a058-4317-beed-8ee581a1f413",
             "hostname": ".invalid",
             "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413",
             "id": "r026-d-86b51a9e-a058-4317-beed-8ee581a1f413",
             "instance_groups_supported": false,
             "is_private_path": true,
             "is_public": false,
             "listeners": [
                 {
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/listeners/r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47",
                     "id": "r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47"
                 }
             ],
             "logging": {
                 "datapath": {
                     "active": false
                 }
             },
             "name": "my-load-balancer",
             "operating_status": "offline",
             "pools": [
                 {
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/pools/r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679",
                     "id": "r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679",
                     "name": "my-pool"
                 }
             ],
             "private_ips": [
                 {
                     "address": "10.245.0.4",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-e21d477e-3e71-47fc-aec4-9703766cf652",
                     "id": "02h7-e21d477e-3e71-47fc-aec4-9703766cf652",
                     "name": "nugget-ounce-stability-vocation",
                     "resource_type": "subnet_reserved_ip"
                 },
                 {
                     "address": "10.245.0.5",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-1910c529-dadd-4960-aba5-3c4604f99f56",
                     "id": "02h7-1910c529-dadd-4960-aba5-3c4604f99f56",
                     "name": "impostors-synopses-uncivic-livable",
                     "resource_type": "subnet_reserved_ip"
                 },
                 {
                     "address": "10.245.0.6",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce",
                     "id": "02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce",
                     "name": "unmade-garnish-preview-defame",
                     "resource_type": "subnet_reserved_ip"
                 },
                 {
                     "address": "10.245.0.7",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-ae009701-8301-420c-862e-a9ec1f79214c",
                     "id": "02h7-ae009701-8301-420c-862e-a9ec1f79214c",
                     "name": "slacking-scuttle-stonework-reptile",
                     "resource_type": "subnet_reserved_ip"
                 }
             ],
             "profile": {
                 "family": "network",
                 "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancer/profiles/network-private-path",
                 "name": "network-private-path"
             },
             "provisioning_status": "create_pending",
             "public_ips": [],
             "resource_group": {
                 "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/297468d87ca047c5be28368e52b055ce",
                 "id": "297468d87ca047c5be28368e52b055ce",
                 "name": "Default"
             },
             "resource_type": "load_balancer",
             "route_mode": false,
             "security_groups": [],
             "security_groups_supported": false,
             "source_ip_session_persistence_supported": false,
             "subnets": [
                 {
                     "crn": "crn:v1:bluemix:public:is:au-syd-1:a/b21af5a9874242b7851e780943d595a9::subnet:02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02",
                     "id": "02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02",
                     "name": "my-subnet",
                     "resource_type": "subnet"
                 }
             ],
             "udp_supported": false
         }
    

    Speichern Sie die ID der Lastausgleichsfunktion für die Verwendung in den nachfolgenden Schritten. Speichern Sie die ID zum Beispiel in der Variablen lbid.

    lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727
    
  4. Hier finden Sie weitere Informationen zum „Private Path“-Load-Balancer:

     curl -H "Authorization: Bearer $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"
    

    Planen Sie Zeit für die Bereitstellung ein. Sobald die Lastausgleichsfunktion bereitgestellt ist, wird sie in den Status online und active versetzt, wie in der folgenden Beispielausgabe dargestellt.

         {
             "availability": "region",
             "created_at": "2023-09-22T21:49:26.000Z",
             "crn": "crn:v1:bluemix:public:is:au-syd:a/b21af5a9874242b7851e780943d595a9::load-balancer:r026-d-86b51a9e-a058-4317-beed-8ee581a1f413",
             "hostname": ".invalid",
             "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413",
             "id": "r026-d-86b51a9e-a058-4317-beed-8ee581a1f413",
             "instance_groups_supported": false,
             "is_private_path": true,
             "is_public": false,
             "listeners": [
                 {
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/listeners/r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47",
                     "id": "r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47"
                 }
             ],
             "logging": {
                 "datapath": {
                     "active": false
                 }
             },
             "name": "my-load-balancer",
             "operating_status": "only",
             "pools": [
                 {
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/pools/r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679",
                     "id": "r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679",
                     "name": "my-pool"
                 }
             ],
             "private_ips": [
                 {
                     "address": "10.245.0.4",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-e21d477e-3e71-47fc-aec4-9703766cf652",
                     "id": "02h7-e21d477e-3e71-47fc-aec4-9703766cf652",
                     "name": "nugget-ounce-stability-vocation",
                     "resource_type": "subnet_reserved_ip"
                 },
                 {
                     "address": "10.245.0.5",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-1910c529-dadd-4960-aba5-3c4604f99f56",
                     "id": "02h7-1910c529-dadd-4960-aba5-3c4604f99f56",
                     "name": "impostors-synopses-uncivic-livable",
                     "resource_type": "subnet_reserved_ip"
                 },
                 {
                     "address": "10.245.0.6",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce",
                     "id": "02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce",
                     "name": "unmade-garnish-preview-defame",
                     "resource_type": "subnet_reserved_ip"
                 },
                 {
                     "address": "10.245.0.7",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-ae009701-8301-420c-862e-a9ec1f79214c",
                     "id": "02h7-ae009701-8301-420c-862e-a9ec1f79214c",
                     "name": "slacking-scuttle-stonework-reptile",
                     "resource_type": "subnet_reserved_ip"
                 }
             ],
             "profile": {
                 "family": "network",
                 "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancer/profiles/network-private-path",
                 "name": "network-private-path"
             },
             "provisioning_status": "active",
             "public_ips": [],
             "resource_group": {
                 "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/297468d87ca047c5be28368e52b055ce",
                 "id": "297468d87ca047c5be28368e52b055ce",
                 "name": "Default"
             },
             "resource_type": "load_balancer",
             "route_mode": false,
             "security_groups": [],
             "security_groups_supported": false,
             "source_ip_session_persistence_supported": false,
             "subnets": [
                 {
                     "crn": "crn:v1:bluemix:public:is:au-syd-1:a/b21af5a9874242b7851e780943d595a9::subnet:02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02",
                     "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02",
                     "id": "02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02",
                     "name": "my-subnet",
                     "resource_type": "subnet"
                 }
             ],
             "udp_supported": false
         }
    

Erstellen eines Private Path Network Load Balancer mit Terraform

Das folgende Beispiel erstellt einen Private Path Network Load Balancer mit Terraform:

  1. Einen privaten Path-NLB erstellen:

    resource "ibm_is_lb" "example_ppnlb" {
      name    = "example-ppnlb"
      subnets = [ibm_is_subnet.example_subnet.id]
      profile = "network-private-path"
      type    = "private_path"
    }
    
  2. Optional können Sie einen Pool für Ihren Private Path NLB erstellen:

    resource "ibm_is_lb_pool" "example_pool" {
      name            = "example-pool"
      lb              = [ibm_is_lb.example_ppnlb.id]
      algorithm       = "round_robin"
      protocol        = "tcp"
      health_delay    = 2
      health_retries  = 2
      health_timeout  = 1
      health_type     = "tcp"
    }
    
  3. Optional können Sie einen ALB oder eine virtuelle Serverinstanz-ID als Poolmitglied für Ihren Private Path NLB auswählen:

    resource "ibm_is_lb" "example_alb" {
      name    = "example-alb"
      subnets = [ibm_is_subnet.example_subnet.id]
    }
    
    resource "ibm_is_lb_pool_member" "example_member" {
      lb        = [ibm_is_lb.example_ppnlb.id]
      pool      = element(split("/", ibm_is_lb_pool.example_pool.id), 1)
      port      = 8080
      weight    = 20
      target_id = [ibm_is_lb.example_alb.id]
    }
    
  4. Optional können Sie eine reservierte IP als Poolmitglied für Ihren Privatpfad-NLB festlegen:

    resource "ibm_is_subnet_reserved_ip" "example" {
    subnet = ibm_is_subnet.example.id
    }
    
    resource "ibm_is_lb_pool_member" "example" {
      lb        = ibm_is_lb.example_ppnlb.id
      pool      = element(split("/", ibm_is_lb_pool.example.id), 1)
      port      = 8080
      weight    = 20
      target_id = ibm_is_subnet_reserved_ip.example.id
    }
    

Dokumentation zu Terraform-Ressourcen finden Sie in der Terraform Registry.