Een Kubernetes-cluster implementeren in een aangepast virtueel netwerk in Azure Stack Hub
U kunt een Kubernetes-cluster implementeren met behulp van de AKS-engine (Azure Kubernetes Service) in een aangepast virtueel netwerk. In dit artikel wordt gekeken naar de informatie die u nodig hebt in uw virtuele netwerk. U vindt stappen voor het berekenen van de IP-adressen die door uw cluster worden gebruikt, het instellen van de valpunten in het API-model en het instellen van de routetabel en netwerkbeveiligingsgroep.
Het Kubernetes-cluster in Azure Stack Hub met behulp van de AKS-engine maakt gebruik van de kubenet-netwerkinvoegtoepassing. De AKS-engine in Azure Stack Hub ondersteunt ook de Azure CNI-netwerkinvoegtoepassing.
- Zie Kubenet-netwerken gebruiken met uw eigen IP-adresbereiken in Azure Kubernetes Service (AKS) voor een bespreking van de kubenet-netwerkinvoegtoepassing in Azure.
- Zie Azure CNI-netwerken configureren in Azure Kubernetes Service (AKS) voor een bespreking van de Azure CNI-netwerkinvoegtoepassing in Azure.
Beperkingen bij het maken van een aangepast virtueel netwerk
- Het aangepaste VNET moet zich in hetzelfde abonnement bevinden als alle andere onderdelen van het Kubernetes-cluster.
- De pool met besturingsvlakknooppunten en de pool agentknooppunten moeten zich in hetzelfde virtuele netwerk bevinden. U kunt uw knooppunten implementeren in verschillende subnetten binnen hetzelfde virtuele netwerk.
- Het Kubernetes-clustersubnet moet een IP-bereik binnen de ruimte van het aangepaste IP-netwerkbereik gebruiken. Zie Het IP-adresblok ophalen.
- Houd er rekening mee dat de aanbevolen grootte van de knooppuntsubnetten afhankelijk is van het type netwerkinvoegtoepassing dat wordt gebruikt. Als algemene richtlijn vereist Azure CNI een groter aantal IP-adressen voor het subnet dat de agentknooppuntgroepen ondersteunt dan kubenet. Zie de kubenet - en Azure CNI-voorbeelden hieronder.
- De
169.254.0.0/16adresruimte wordt mogelijk niet gebruikt voor aangepaste VNET's voor Kubernetes-clusters.
Aangepast virtueel netwerk maken
U moet een aangepast virtueel netwerk hebben in uw Azure Stack Hub-exemplaar. Zie quickstart: Een virtueel netwerk maken met behulp van de Azure Portal voor meer informatie.
Maak een nieuw subnet in uw virtuele netwerk. U moet de resource-id en het IP-adresbereik van het subnet ophalen. U gebruikt de resource-id en het bereik in uw API-model wanneer u uw cluster implementeert.
Open de Azure Stack Hub-gebruikersportal in uw Azure Stack Hub-exemplaar.
Selecteer Alle resources.
Voer de naam van uw virtuele netwerk in het zoekvak in.
Selecteer Subnetten>+ Subnetten om een subnet toe te voegen.
Voeg een naam en een adresbereik toe met cidr-notatie. Selecteer OK.
Selecteer Eigenschappen op de blade Virtuele netwerken . Kopieer de resource-id en voeg vervolgens toe
/subnets/<nameofyoursubnect>. U gebruikt deze waarde als uw waarde voor devnetSubnetIdsleutel in het API-model voor uw cluster. De resource-id voor het subnet gebruikt de volgende indeling:/subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME
Selecteer Subnetten op de blade Virtuele netwerken . Selecteer bijvoorbeeld
control-plane-snde naam van het subnet.Koppel het subnet niet aan een netwerkbeveiligingsgroep (NSG).

Noteer op de subnetblade het adresbereik (CIDR-blok) van elk subnet.
Overwegingen voor het selecteren van een adresruimte
Wanneer u een aangepast virtueel netwerk maakt, geeft u de IP-adresruimte van uw netwerk en een IP-adresbereik voor elk subnet op. Houd rekening met de volgende factoren wanneer u de adresruimten en bereiken kiest die u in uw Kubernetes-cluster wilt gebruiken:
- Overlappende adresruimten kunnen leiden tot conflicten met IP-adressen of communicatiefouten. Als u het risico op overlappende IP-adressen wilt verminderen, kiest u een unieke adresruimte voor uw nieuwe virtuele netwerk.
- Adresruimten in de
10/8,172.16/12en192.168/16bereiken worden vaak gebruikt voor privénetwerken en ze kunnen worden gebruikt door uw bestaande datacenterinfrastructuur. Als uw Kubernetes-toepassingen resources in uw datacenter gebruiken, vermindert u het risico op conflicten door een adresruimte te kiezen voor uw aangepaste virtuele netwerk dat verschilt van de adresruimte van uw datacenter. - U wordt aangeraden een toegewezen subnet te gebruiken voor uw Kubernetes-cluster.
- Als u meerdere bestaande virtuele netwerken gebruikt, kunt u verschillende adresruimten in elk netwerk gebruiken als u peering van virtuele netwerken wilt gebruiken. Overlappende adresruimten kunnen uw vermogen om peering in te schakelen, nadelig beïnvloeden.
De IP-adresblokken ophalen
De AKS-engine biedt ondersteuning voor implementatie in een bestaand virtueel netwerk. Wanneer u implementeert in een bestaand virtueel netwerk, gebruikt uw cluster blokken opeenvolgende adressen voor agentknooppunten, besturingsvlakknooppunten, clusterservices en containers (pods). Elk adresblok kan worden omgezet in een subnet binnen het virtuele netwerk. Alle adresblokken in de clusterimplementatie moeten deel uitmaken van de algemene adresruimte van het virtuele netwerk. Als u adresblokken buiten de adresruimte van het virtuele netwerk kiest, kan dit leiden tot verbindingsproblemen.
Er zijn minimaal drie adresblokken vereist bij het instellen van een Kubernetes-cluster:
- Adresblok knooppunten: dit is het adresblok dat wordt gebruikt voor het toewijzen van adressen aan de clusterknooppunten. Dit kan één adresblok zijn voor alle clusterknooppunten of kunnen afzonderlijke blokken (subnetten) zijn voor besturingsvlak- en agentpools. Houd rekening met het aantal knooppunten in uw cluster wanneer u het adresbereik voor dit blok selecteert. Voor Azure CNI-knooppunten en -containers worden hun adressen opgehaald uit hetzelfde adresblok. Houd dus rekening met het aantal containers dat u in uw cluster wilt implementeren bij het kiezen van het adresbereik bij het gebruik van Azure CNI.
- Adresblok van services: dit is het adresblok van waaruit services die zijn geïmplementeerd in het Kubernetes-cluster, hun clusteradres ophalen. Houd rekening met het maximum aantal services dat u in uw cluster wilt uitvoeren bij het selecteren van het adresbereik voor dit blok.
- Clusteradresblok: dit is het adresblok van waaruit pods hun clusteradres ophalen. Houd rekening met het maximum aantal pods dat u in uw cluster wilt uitvoeren bij het selecteren van het adresbereik voor dit blok. Zoals eerder vermeld, zijn voor Azure CNI de adresblokken van het cluster en de knooppunten hetzelfde.
Naast de adresblokken moet u voor besturingsvlakknooppunten nog twee waarden instellen. U moet weten hoeveel IP-adressen u moet reserveren voor uw cluster en het eerste opeenvolgende statische IP-adres in de subnet-IP-ruimte. De AKS-engine vereist een bereik van maximaal 16 ongebruikte IP-adressen wanneer u meerdere besturingsvlakknooppunten gebruikt. Het cluster gebruikt één IP-adres voor elk besturingsvlak tot vijf besturingsvlakknooppunten. De AKS-engine vereist ook het volgende 10 IP-adres na het laatste besturingsvlakknooppunt voor de reservering van het hoofdruimte-IP-adres. Ten slotte wordt een ander IP-adres gebruikt door de load balancer na de knooppunten van het besturingsvlak en de reservering van de hoofdruimte voor in totaal 16. Bij het plaatsen van uw blok IP-adressen vereist het subnet de volgende toewijzingen van de bestaande IP-adressen:
- De eerste vier IP-adressen en het laatste IP-adres zijn gereserveerd en kunnen niet worden gebruikt in een Azure-subnet
- Er moet een buffer van 16 IP-adressen open blijven.
- De waarde van het eerste IP-adres van uw cluster moet zich aan het einde van de adresruimte bevinden om IP-conflicten te voorkomen. Wijs indien mogelijk toe aan de
firstConsecutiveStaticIPeigenschap aan een IP-adres aan het einde van de beschikbare IP-adresruimte in het subnet.
Bijvoorbeeld voor een cluster met drie besturingsvlakknooppunten. Als u een subnet met 256 adressen gebruikt, bijvoorbeeld 10.100.0.0/24, moet u uw eerste opeenvolgende statische IP-adres vóór 239 instellen. In de volgende tabel ziet u de adressen en overwegingen:
| Bereik voor /24-subnet | Aantal | Notitie |
|---|---|---|
| 172.100.0.0 - 172.100.0.3 | 4 | Gereserveerd in het Azure-subnet. |
| 172.100.0.224-172.100.0.238 | 14 | Aantal IP-adressen voor een gedefinieerd AKS-enginecluster. 3 IP-adressen voor 3 besturingsvlakknooppunten 10 IP-adressen voor hoofdruimte 1 IP-adres voor de load balancer |
| 172.100.0.238 - 172.100.0.254 | 16 | 16 IP-adresbuffer. |
| 172.100.0.255 | 1 | Gereserveerd in het Azure-subnet. |
In dit voorbeeld is 172.100.0.224de firstConsecutiveStaticIP eigenschap .
Voor grotere subnetten, bijvoorbeeld /16 met meer dan 60 duizend adressen, is het misschien niet praktisch om uw statische IP-toewijzingen in te stellen aan het einde van de netwerkruimte. Stel het statische IP-adresbereik van uw cluster af van de eerste 24 adressen in uw IP-ruimte, zodat het cluster tolerant kan zijn bij het claimen van adressen.
Voorbeeld van Kubenet-adresblokken
In het volgende voorbeeld ziet u hoe deze verschillende overwegingen de adresruimte invullen in het virtuele netwerk voor een cluster met behulp van de kubenet-netwerkinvoegtoepassing met toegewezen subnetten voor het besturingsvlakknooppunt en agentknooppuntgroepen met drie knooppunten per pool.
VNET-adresruimte: 10.100.0.0/16.
| Adresblok (subnet) | CIDR | IP-bereik | IP-aantal (beschikbaar) |
|---|---|---|---|
| Blok besturingsvlakknooppunten | 10.100.0.0/24 | 10.100.0.0 - 10.100.0.255 | 255 - 4 gereserveerd = 251 |
| Blok agentknooppunten | 10.100.1.0/24 | 10.100.1.0 - 10.100.1.255 | 255 - 4 gereserveerd = 251 |
| Servicesblok | 10.100.16.0/20 | 10.100.16.0 - 10.100.31.255 | 4.096 - 5 gereserveerd = 4.091 |
| Clusterblok | 10.100.128.0/17 | 10.100.128.0 - 10.100.255.255 | 32.768 - 5 gereserveerd = 32.763 |
In dit voorbeeld is 10.100.0.239de firstConsecutiveStaticIP eigenschap .
Voorbeeld van Azure CNI-adresblokken
In het volgende voorbeeld ziet u hoe deze verschillende overwegingen de adresruimte invullen in het virtuele netwerk voor een cluster met behulp van de Azure CNI-netwerkinvoegtoepassing met toegewezen subnetten voor het besturingsvlak en agentknooppuntgroepen met drie knooppunten per pool.
VNET-adresruimte: 172.24.0.0/16.
Notitie
Als in uw omgeving het openbare IP-bereik zich binnen CIDR10.0.0.0/8 bevindt, gebruikt u kubenet als de netwerkinvoegtoepassing.
| Adresblok (subnet) | CIDR | IP-bereik | IP-aantal (beschikbaar) |
|---|---|---|---|
| Blok besturingsvlakknooppunten | 172.24.0.0/24 | 172.24.0.0 - 172.24.0.255 | 255 - 4 gereserveerd = 251 |
| Clusterblok agentknooppunten & | 172.24.128.0/17 | 172.24.128.0 - 172.24.255.255 | 32.768 - 5 gereserveerd = 32.763 |
| Servicesblok | 172.24.16.0/20 | 172.24.16.0 - 172.24.31.255 | 4.096 - 5 gereserveerd = 4.091 |
In dit voorbeeld is 172.24.0.239de firstConsecutiveStaticIP eigenschap .
Het API-model bijwerken
Werk het API-model bij dat wordt gebruikt voor het implementeren van het cluster vanuit de AKS-engine naar uw aangepaste virtuele netwerk.
Stel in masterProfile de volgende waarden in:
| Veld | Voorbeeld | Beschrijving |
|---|---|---|
| vnetSubnetId | /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn |
Geef de Azure Resource Manager pad-id van het subnet op. Deze waarde wordt toegewezen aan het adresblok voor besturingsvlakknooppunten hierboven. |
| firstConsecutiveStaticIP | 10.100.0.239 | Wijs een IP-adres toe aan de firstConsecutiveStaticIP configuratie-eigenschap dat zich aan het einde van de beschikbare IP-adresruimte in het gewenste subnet bevindt. firstConsecutiveStaticIP alleen van toepassing op de knooppuntgroep van het besturingsvlak. |
Stel in agentPoolProfiles de volgende waarden in:
| Veld | Voorbeeld | Beschrijving |
|---|---|---|
| vnetSubnetId | /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn |
Geef de Azure Resource Manager pad-id van het subnet op. Deze waarde wordt toegewezen aan het adresblok van de agentknooppunten hierboven. |
Zoek in orchestratorProfilekubernetesConfig en stel de volgende waarde in:
| Veld | Voorbeeld | Beschrijving |
|---|---|---|
| clusterSubnet | 10.100.128.0/17 |
Het IP-subnet dat wordt gebruikt voor het toewijzen van IP-adressen voor podnetwerkinterfaces. Deze waarde wordt toegewezen aan het bovenstaande clusteradresblok. Het subnet moet zich in de VNET-adresruimte bevinden. Als Azure CNI is ingeschakeld, is de standaardwaarde 10.240.0.0/12. Zonder Azure CNI is de standaardwaarde 10.244.0.0/16. Gebruik /16 in plaats daarvan /24 subnet. Als u /24 gebruikt, wordt dit subnet alleen toegewezen aan één knooppunt. Andere knooppunten krijgen geen POD-netwerk toegewezen, omdat u geen IP-ruimte meer hebt, zodat ze niet gereed zijn in het cluster. |
| serviceCidr | 10.100.16.0/20 |
Het IP-subnet dat wordt gebruikt voor het toewijzen van IP-adressen voor services die in het cluster zijn geïmplementeerd. Deze waarde wordt toegewezen aan het bovenstaande clusterservicesblok. |
| dnsServiceIP | 10.100.16.10 |
Het IP-adres dat moet worden toegewezen aan de DNS-clusterservice. Het adres moet afkomstig zijn van het serviceCidr-subnet. Deze waarde moet worden ingesteld bij het opgeven van de serviceCidr. De standaardwaarde is het .10-adres van het serviceCidr-subnet. |
Als u bijvoorbeeld kubenet gebruikt:
Met een netwerkadresruimte waar 10.100.0.0/16 het subnet voor control-plane-sn is en agents-sn waar het voor staat 10.100.0.0/2410.100.1.0/24
"masterProfile": {
...
"vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
"firstConsecutiveStaticIP": "10.100.0.239",
...
},
...
"agentPoolProfiles": [
{
...
"vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn",
...
},
...
"kubernetesConfig": [
{
...
"clusterSubnet": "10.100.128.0/17",
"serviceCidr": "10.100.16.0/20",
"dnsServiceIP" : "10.100.16.10",
...
},
Als u bijvoorbeeld Azure CNI gebruikt:
Met een netwerkadresruimte waar 172.24.0.0/16 het subnet voor control-plane-sn is en k8s-sn waar het voor staat 172.24.0.0/24172.24.128.0/17
"masterProfile": {
...
"vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
"firstConsecutiveStaticIP": "172.24.0.239",
...
},
...
"agentPoolProfiles": [
{
...
"vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/k8s-sn",
...
},
...
"kubernetesConfig": [
{
...
"clusterSubnet": "172.24.128.0/17",
"serviceCidr": "172.24.16.0/20",
"dnsServiceIP" : "172.24.16.10",
...
},
Uw cluster implementeren
Nadat u de waarden aan uw API-model hebt toegevoegd, kunt u uw cluster vanaf uw clientcomputer implementeren met behulp van de deploy opdracht met behulp van de AKS-engine. Zie Een Kubernetes-cluster implementeren voor instructies.
De routetabel instellen
Als u bijvoorbeeld kubenet gebruikt, networkPlugingaat u naar het kubenet configuratieobject van het kubernetesConfig API-model. Nadat u uw cluster hebt geïmplementeerd, keert u terug naar uw virtuele netwerk in de Azure Stack-gebruikersportal. Stel zowel de routetabel als de netwerkbeveiligingsgroep (NSG) in op de subnetblade. Nadat u een cluster hebt geïmplementeerd in uw aangepaste virtuele netwerk, haalt u de id van de routetabelresource op van de blade Netwerk in de resourcegroep van uw cluster.
Open de Azure Stack Hub-gebruikersportal in uw Azure Stack Hub-exemplaar.
Selecteer Alle resources.
Voer de naam van uw virtuele netwerk in het zoekvak in.
Selecteer Subnetten en selecteer vervolgens de naam van het subnet dat uw cluster bevat.

Selecteer Routetabel en selecteer vervolgens de routetabel voor uw cluster.
Notitie
Aangepast virtueel netwerk voor Kubernetes Windows-cluster heeft een bekend probleem.
Volgende stappen
- Meer informatie over de AKS-engine in Azure Stack Hub
- Overzicht van Azure Monitor voor containers