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 eenstring
type met een standaardwaarde vanTrue
. U kunt deze instellen op ofTrue
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.