Delen via


Service load balancer configureren in Azure Operator Nexus Kubernetes-service

In dit artikel leert u hoe u een service load balancer configureert in een Nexus Kubernetes-cluster. Met de load balancer hebben externe services toegang tot de services die in het cluster worden uitgevoerd. De focus van deze handleiding ligt op de configuratieaspecten, met voorbeelden om u te helpen het proces te begrijpen. Door deze handleiding te volgen, kunt u service load balancers effectief configureren in uw Nexus Kubernetes-cluster.

Vereisten

Voordat u doorgaat met deze handleiding, is het raadzaam om het volgende te doen:

  • Raadpleeg de quickstartgids voor Nexus Kubernetes-clusters voor een uitgebreid overzicht en de bijbehorende stappen.
  • Zorg ervoor dat u voldoet aan de beschreven vereisten om een soepele implementatie van de handleiding te garanderen.
  • Kennis van Kubernetes-concepten, waaronder implementaties en services.
  • Neem contact op met de netwerkbeheerder om een IP-adresbereik te verkrijgen dat kan worden gebruikt voor de IP-adresgroep van de load balancer.

Beperkingen

  • Configuratie van IP-adresgroepen kan niet meer worden gewijzigd: als deze eenmaal is ingesteld, kan deze niet worden gewijzigd in een Nexus Kubernetes-cluster.
  • Namen van IP-pools moeten beginnen met een kleine letter of een cijfer en eindigen op een kleine letter of cijfer.
  • Namen van IP-pools mogen niet langer zijn dan 63 tekens om potentiële problemen of beperkingen te voorkomen.
  • IP-adresgroepen mogen niet overlappen met bestaande POD CIDR, Service CIDR of CNI-voorvoegsel om conflicten en netwerkproblemen in het cluster te voorkomen.

Belangrijk

Deze instructies zijn bedoeld voor het maken van een nieuw Nexus Kubernetes-cluster. Vermijd het toepassen van de Bicep-sjabloon op een bestaand cluster, omdat de CONFIGURATIE van IP-adresgroepen onveranderbaar is. Zodra een cluster is gemaakt met de IP-adresgroepconfiguratie, kan het niet worden gewijzigd.

Configuratieopties

Voordat u de IP-adresgroep voor de load balancer van de service configureert, is het belangrijk om inzicht te hebben in de verschillende beschikbare configuratieopties. Met deze opties kunt u het gedrag en de parameters van de IP-adresgroep definiëren op basis van uw specifieke vereisten.

Laten we de configuratieopties voor de IP-adresgroep verkennen.

Vereiste parameters

Voor de configuratie van de IP-adresgroep zijn twee velden vereist: addresses en name. Deze velden zijn essentieel voor het definiëren van het IP-adresbereik en het identificeren van de groep.

  • In addresses het veld wordt de lijst met IP-adresbereiken opgegeven die kunnen worden gebruikt voor toewijzing binnen de groep. U kunt elk bereik definiëren als een subnet in CIDR-indeling. Vermijd het gebruik van één IP-adres, zoals /32 voor IPv4 en /128 voor IPv6.
  • Het name veld fungeert als een unieke id voor de IP-adresgroep. Het helpt de groep te koppelen aan een BGP-aankondiging (Border Gateway Protocol), waardoor effectieve communicatie binnen het cluster mogelijk is.

Notitie

Als u wilt dat de Kubernetes-service LoadBalancer een dubbel stack-adres heeft, moet u ervoor zorgen dat de CONFIGURATIE van de IP-adresgroep zowel IPv4 als IPv6 CIDR bevat.

Optionele parameters

Naast de vereiste velden zijn er ook optionele velden beschikbaar voor verdere aanpassing van de configuratie van de IP-adresgroep.

  • Het autoAssign veld bepaalt of IP-adressen automatisch worden toegewezen vanuit de groep. Dit veld is een string type met een standaardwaarde van True. U kunt deze instellen op of True False op basis van uw voorkeur.
  • Het onlyUseHostIps veld bepaalt het gebruik van IP-adressen die eindigen op .0 en .255 binnen de groep. Als u deze optie inschakelt, wordt het gebruik beperkt tot IP-adressen tussen .1 en .254 (inclusief), met uitzondering van gereserveerde netwerk- en broadcastadressen.

Bicep-sjabloonparameters voor configuratie van IP-adresgroepen

In het volgende JSON-fragment ziet u de parameters die vereist zijn voor het configureren van de IP-adresgroep in de Bicep-sjabloon.

"ipAddressPools": {
  "value": [
    {
      "addresses": ["<IP>/<CIDR>"],
      "name": "<pool-name>",
      "autoAssign": "True",  /* "True"/"False" */
      "onlyUseHostIps": "True"  /* "True"/"False" */
    }
  ]
}

Als u de configuratie van de IP-adresgroep wilt toevoegen aan uw cluster, moet u het kubernetes-deploy-parameters.json bestand bijwerken dat u tijdens de quickstart hebt gemaakt. Neem de configuratie van de IP-adresgroep in dit bestand op volgens de gewenste instellingen.

Nadat u de IP-adresgroepconfiguratie hebt toegevoegd aan uw parameterbestand, kunt u doorgaan met het implementeren van de Bicep-sjabloon. Met deze actie stelt u uw nieuwe cluster in met de configuratie van de opgegeven IP-adresgroep, zodat u de IP-groep kunt gebruiken zoals bedoeld.

Door deze instructies te volgen, kunt u een nieuw Nexus Kubernetes-cluster maken met de gewenste IP-adresgroepconfiguratie en profiteren van de IP-adresgroep voor uw clusterservices.

Voorbeeldparameters

Dit parameterbestand is bedoeld om te worden gebruikt met de bicep-quickstart-sjabloon voor het maken van een cluster waarvoor BGP-load balancer is ingeschakeld. Het bevat de benodigde configuratie-instellingen voor het instellen van het cluster met BGP-load balancer-functionaliteit. Met behulp van dit parameterbestand met de Bicep-sjabloon kunt u een cluster maken met de gewenste BGP-load balancer-mogelijkheden.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "kubernetesClusterName":{
      "value": "lb-test-cluster"
    },
    "adminGroupObjectIds": {
      "value": [
        "00000000-0000-0000-0000-000000000000"
      ]
    },
    "cniNetworkId": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
    },
    "cloudServicesNetworkId": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
    },
    "extendedLocation": {
      "value": "/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
    },
    "location": {
      "value": "eastus"
    },
    "sshPublicKeys": {
      "value": [
        {
          "keyData": "ssh-rsa AAAAB..."
        },
        {
          "keyData": "ssh-rsa AAAAC..."
        }
      ]
    },
    "ipAddressPools": {
      "value": [
        {
          "addresses": ["<IP>/<CIDR>"],
          "name": "<pool-name>",
          "autoAssign": "True",
          "onlyUseHostIps": "True"
        }
      ]
    }
  }
}

Notitie

Als u een DualStack-service wilt maken, moet u ervoor zorgen dat de adresgroep zowel een IPv4-CIDR als een IPv6-CIDR bevat. Hierdoor kunnen zowel IPv4- als IPv6-adressen tegelijk worden ondersteund in de configuratie van uw load balancer.

Voorbeeld: Toewijzing van statisch IP-adres voor een service

Als u een statisch IP-adres voor een service wilt toewijzen, kunt u de volgende opdrachten gebruiken.

Een implementatie maken

kubectl create deployment nginx --image=nginx --port 80

Statische IP-toewijzing (LoadBalancerIP)

kubectl expose deployment nginx \
    --name nginx-loadbalancer-pool1-static \
    --type LoadBalancer \
    --load-balancer-ip <IP from pool-1>

Vervang <IP from pool-1> door het gewenste IP-adres uit de IP-groep.

Statische IP-toewijzing (ExternalIP)

kubectl expose deployment nginx \
    --name nginx-clusterip-pool1-static \
    --type ClusterIP \
    --external-ip <IP from pool-1>

Vervang <IP from pool-1> door het gewenste IP-adres uit de IP-groep.

Voorbeeld: IP-adrestoewijzing voor een service van specifieke IP-adresgroep

Als u een IP-adres voor een service wilt toewijzen vanuit een specifieke IP-adresgroep, kunt u de volgende opdracht gebruiken.

kubectl expose deployment nginx \
    --name nginx-loadbalancer-pool2-auto \
    --type LoadBalancer \
    --overrides '{"metadata":{"annotations":{"metallb.universe.tf/address-pool":"pool-2"}}}'

Met deze opdracht wordt een IP-adres aan de service toegewezen vanuit de IP-adresgroep pool-2. Pas de naam van de pool zo nodig aan. Voordat u deze voorbeelden probeert, moet u ervoor zorgen dat u al een Nexus Kubernetes-cluster met twee verschillende IP-adresgroepen hebt gemaakt. Als u dit nog niet hebt gedaan, volgt u de benodigde stappen om het cluster te maken en configureert u de IP-adresgroepen dienovereenkomstig.

Notitie

De naam van de IP-adresgroep is hoofdlettergevoelig. Zorg ervoor dat u het juiste hoofdlettergebruik gebruikt bij het opgeven van de naam van de pool.

Volgende stappen

U kunt proberen een netwerkfunctie (NF) binnen uw Nexus Kubernetes-cluster te implementeren met behulp van de zojuist geconfigureerde load balancer. Met deze configuratie kunt u de taakverdelingsmogelijkheden testen en zien hoe verkeer wordt verdeeld over de exemplaren van uw NF.