Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel vindt u een overzicht van de netwerkconfiguratievereisten en aanbevelingen voor AKS-clusters (Azure Kubernetes Service) met behulp van NAP (Automatisch inrichten van knooppunten). Hierin worden ondersteunde configuraties, standaardsubnetgedrag, RBAC-instellingen (op rollen gebaseerd toegangsbeheer) en overwegingen met betrekking tot classless interdomeinroutering (CIDR) behandeld.
Ondersteunde netwerkconfiguraties voor NAP
NAP ondersteunt de volgende netwerkconfiguraties:
We raden u aan Azure CNI te gebruiken met Cilium. Cilium biedt geavanceerde netwerkmogelijkheden en is geoptimaliseerd voor prestaties met NAP.
Niet-ondersteunde netwerkconfiguraties voor NAP
NAP biedt geen ondersteuning voor de volgende netwerkconfiguraties:
- Calico-netwerkbeleid
- Dynamische IP-toewijzing
Subnetconfiguraties voor NAP
NAP implementeert, configureert en beheert Karpenter automatisch op uw AKS-clusters en is gebaseerd op de opensource Karpenter - en AKS Karpenter-providerprojecten . U kunt resources gebruiken AKSNodeClass om aangepaste subnetconfiguraties voor NAP-knooppunten in uw knooppuntgroepen op te geven door het optionele vnetSubnetID veld in te stellen. Karpenter gebruikt het subnet dat u opgeeft voor het inrichten van knooppunten. Als u geen subnet opgeeft, gebruikt Karpenter het standaardsubnet dat is geconfigureerd tijdens de installatie van Karpenter. Dit standaardsubnet is doorgaans hetzelfde subnet dat is opgegeven tijdens het maken van een AKS-cluster met de --vnet-subnet-id parameter in de az aks create opdracht.
Met deze benadering kunt u een combinatie van knooppuntklassen hebben, met sommigen die aangepaste subnetten gebruiken voor specifieke workloads en andere met behulp van de standaardsubnetconfiguratie van het cluster.
Gedrag van subnetdrift
Karpenter bewaakt wijzigingen in de subnetconfiguratie en detecteert afwijkingen wanneer de vnetSubnetID in een AKSNodeClass wordt gewijzigd. Inzicht in dit gedrag is essentieel bij het beheren van aangepaste netwerkconfiguraties.
vnetSubnetID Het wijzigen van een geldig subnet naar een ander geldig subnet is geen ondersteunde bewerking. Als u het vnetSubnetID wijzigt om naar een ander geldig subnet te wijzen, detecteert Karpenter dit als subnet drift en voorkomt dat knooppunten worden geïmplementeerd totdat het probleem is opgelost door vnetSubnetID terug te zetten naar het oorspronkelijke subnet. Dit gedrag zorgt ervoor dat knooppunten alleen worden ingericht in de beoogde subnetten, waarbij de netwerkintegriteit en beveiliging behouden blijven. Er zijn echter uitzonderingen op deze regel. U kunt de vnetSubnetID alleen in de volgende scenario's wijzigen:
- Het corrigeren van een onjuiste subnet-id die het inrichten van knooppunten voorkomt.
- Een ongeldige subnetreferentie herstellen die configuratiefouten veroorzaakt.
- Een subnet-id bijwerken die verwijst naar een niet-bestaand of ontoegankelijk subnet.
Inzicht in AKS-cluster Classless Inter-Domain Routing (CIDR)-bereiken
Wanneer u aangepaste netwerken configureert met vnetSubnetID, bent u verantwoordelijk voor het begrijpen en beheren van de CIDR-bereiken van uw cluster om netwerkconflicten te voorkomen. In tegenstelling tot traditionele AKS-knooppuntgroepen die zijn gemaakt via ARM-sjablonen, past Karpenter aangepaste resourcedefinities (CRD's) toe die knooppunten direct inrichten zonder de uitgebreide validatie die ARM biedt.
CIDR-overwegingen voor aangepaste subnetconfiguraties
Bij het vnetSubnetIDconfigureren moet u het volgende doen:
- Controleer de CIDR-compatibiliteit: zorg ervoor dat aangepaste subnetten niet conflicteren met bestaande CIDR-bereiken.
- IP-capaciteit plannen: bereken de vereiste IP-adressen voor verwachte schaalaanpassing.
- Connectiviteit valideren: netwerkroutes en beveiligingsgroepsregels testen.
- Gebruik bewaken: het subnetgebruik bijhouden en groei plannen.
- Documentconfiguratie: beheer records van beslissingen over netwerkontwerp.
Veelvoorkomende CIDR-conflicten
Houd rekening met de volgende veelvoorkomende CIDR-conflictscenario's bij het gebruik van aangepaste subnetten met NAP:
# Example conflict scenarios:
# Cluster Pod CIDR: 10.244.0.0/16
# Custom Subnet: 10.244.1.0/24 ❌ CONFLICT
# Service CIDR: 10.0.0.0/16
# Custom Subnet: 10.0.10.0/24 ❌ CONFLICT
# Safe configuration:
# Cluster Pod CIDR: 10.244.0.0/16
# Service CIDR: 10.0.0.0/16
# Custom Subnet: 10.1.0.0/24 ✅ NO CONFLICT
RBAC-installatie voor aangepaste subnetconfiguraties
Wanneer u aangepaste subnetconfiguraties met NAP gebruikt, moet u ervoor zorgen dat Karpenter over de benodigde machtigingen beschikt om subnetgegevens te lezen en knooppunten toe te voegen aan de opgegeven subnetten. Hiervoor moet u de juiste RBAC-machtigingen instellen voor de beheerde identiteit van het cluster.
Er zijn twee hoofdmethoden voor het instellen van deze machtigingen: wijs machtigingen voor een breed virtueel netwerk (VNet) toe of wijs subnetmachtigingen binnen het bereik toe.
- Brede VNet-machtigingen (virtueel netwerk) toewijzen
- Machtigingen voor het bereik van subnet toewijzen
Deze benadering is de meest permissieve en verleent de machtigingen van de clusteridentiteit om elk subnet in het hoofd-VNet te lezen en eraan deel te nemen en netwerkcontributortoegang te verlenen.
Belangrijk
Onderzoek de rol 'Netwerkbijdrager' voordat u deze benadering toepast op uw productiecluster.
Voordelen en overwegingen
De volgende tabel bevat een overzicht van de voordelen en overwegingen voor het toewijzen van brede VNet-machtigingen:
| Voordelen | Overwegingen |
|---|---|
| • Vereenvoudigt het beheer van machtigingen. • Elimineert de noodzaak om machtigingen bij te werken bij het toevoegen van nieuwe subnetten. • Werkt goed voor omgevingen met één tenant. • Functies wanneer een abonnement het maximum aantal aangepaste rollen bereikt. |
• Biedt bredere machtigingen dan strikt noodzakelijk. • Voldoet mogelijk niet aan strenge beveiligingsvereisten. |
Vereiste toestemmingen
Als u brede VNet-machtigingen wilt toewijzen, verleent u de beheerde identiteit van het cluster de volgende machtigingen voor het VNet:
# Get your cluster's managed identity
CLUSTER_IDENTITY=$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query identity.principalId -o tsv)
# Get your VNet resource ID
VNET_ID="/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$VNET_RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME"
# Assign Network Contributor role for subnet read/join operations
az role assignment create \
--assignee $CLUSTER_IDENTITY \
--role "Network Contributor" \
--scope $VNET_ID
Voor een volledig voorbeeld van het instellen van aangepaste netwerken en het toewijzen van brede VNet-machtigingen, raadpleegt u de aangepaste VNET-installatie : het meest uitgebreide RBAC-voorbeeldscript.
Voorbeeld van aangepaste subnetconfiguraties
In het volgende voorbeeld ziet u hoe u een aangepast subnet voor NAP-knooppunten configureert met behulp van het vnetSubnetID veld in een AKSNodeClass resource:
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
name: custom-networking
spec:
vnetSubnetID: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME"
In het volgende voorbeeld ziet u hoe u meerdere knooppuntklassen met verschillende subnetconfiguraties gebruikt:
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
name: frontend-nodes
spec:
vnetSubnetID: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$FRONTEND_SUBNET_NAME"
---
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
name: backend-nodes
spec:
vnetSubnetID: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$BACKEND_SUBNET_NAME"
BYO CNI-ondersteuningsbeleid (Bring Your Own CNI)
Karpenter voor Azure maakt byo-CNI-configuraties (Bring Your Own Container Network Interface) mogelijk, volgens hetzelfde ondersteuningsbeleid als AKS. Dit betekent dat wanneer u een aangepaste CNI gebruikt, ondersteuning voor probleemoplossing met betrekking tot netwerken buiten het bereik valt van eventuele serviceovereenkomsten of garanties.
Details van ondersteuningsbereik
In het volgende overzicht wordt beschreven wat wel en niet wordt ondersteund bij het gebruik van BYO CNI met Karpenter:
- Ondersteund: Karpenter-specifieke functionaliteit en integratieproblemen bij het gebruik van BYO-configuraties (Bring-Your-Own) CNI.
- Niet ondersteund: CNI-specifieke netwerkproblemen, configuratieproblemen of probleemoplossing bij het gebruik van CNI-invoegtoepassingen van derden.
Volgende stappen
Zie de volgende artikelen voor meer informatie over automatische inrichting van knooppunten in AKS: