CNI-invoegtoepassing (Bring Your Own Container Network Interface) met Azure Kubernetes Service (AKS)
Kubernetes biedt standaard geen netwerkinterfacesysteem. In plaats daarvan bieden netwerkinvoegtoepassingen deze functionaliteit. Azure Kubernetes Service (AKS) biedt verschillende ondersteunde CNI-invoegtoepassingen. Zie de AKS-netwerkconcepten voor informatie over ondersteunde invoegtoepassingen.
De ondersteunde invoegtoepassingen voldoen aan de meeste netwerkbehoeften in Kubernetes. Geavanceerde AKS-gebruikers willen echter mogelijk dezelfde CNI-invoegtoepassing gebruiken in on-premises Kubernetes-omgevingen of geavanceerde functies gebruiken die beschikbaar zijn in andere CNI-invoegtoepassingen.
In dit artikel wordt beschreven hoe u een AKS-cluster implementeert zonder vooraf geïnstalleerde CNI-invoegtoepassing. Vervolgens kunt u elke CNI-invoegtoepassing van derden installeren die in Azure werkt.
Ondersteuning
Microsoft-ondersteuning kan niet helpen bij CNI-gerelateerde problemen in clusters die zijn geïmplementeerd met BYOCNI (Bring Your Own Container Network Interface). CNI-gerelateerde problemen hebben bijvoorbeeld betrekking op het meeste verkeer in oost/west (pod naar pod), samen met kubectl proxy
vergelijkbare opdrachten. Als u CNI-gerelateerde ondersteuning wilt, gebruikt u een ondersteunde AKS-netwerkinvoegtoepassing of zoekt u ondersteuning van de externe leverancier van de BYOCNI-invoegtoepassing.
Er wordt nog steeds ondersteuning geboden voor niet-CNI-gerelateerde problemen.
Vereisten
- Gebruik voor Azure Resource Manager (ARM) of Bicep ten minste sjabloonversie 2022-01-02-preview of 2022-06-01.
- Gebruik ten minste versie 2.39.0 voor Azure CLI.
- Het virtuele netwerk voor het AKS-cluster moet uitgaande internetverbinding toestaan.
- AKS-clusters gebruiken
169.254.0.0/16
mogelijk geen,172.30.0.0/16
of172.31.0.0/16
192.0.2.0/24
voor het adresbereik van de Kubernetes-service, het adresbereik van pods of het adresbereik van het virtuele clusternetwerk. - De clusteridentiteit die door het AKS-cluster wordt gebruikt, moet ten minste machtigingen voor netwerkbijdrager hebben voor het subnet binnen uw virtuele netwerk. Als u een aangepaste rol wilt definiëren in plaats van de ingebouwde rol Netwerkbijdrager te gebruiken, zijn de volgende machtigingen vereist:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
- Het subnet dat is toegewezen aan de AKS-knooppuntgroep kan geen gedelegeerd subnet zijn.
- AKS past geen netwerkbeveiligingsgroepen (NSG's) toe op het subnet of wijzigt een van de NSG's die aan dat subnet zijn gekoppeld. Als u uw eigen subnet opgeeft en NSG's toevoegt die aan dat subnet zijn gekoppeld, moet u ervoor zorgen dat de beveiligingsregels in de NSG's verkeer toestaan binnen het CIDR-bereik van het knooppunt. Zie Netwerkbeveiligingsgroepen voor meer informatie.
Een AKS-cluster maken zonder vooraf geïnstalleerde CNI-invoegtoepassing
Maak een Azure-resourcegroep voor uw AKS-cluster met behulp van de
az group create
opdracht.az group create --location eastus --name myResourceGroup
Maak een AKS-cluster met behulp van de
az aks create
opdracht. Geef de--network-plugin
parameter door met de parameterwaarde vannone
.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Een CNI-invoegtoepassing implementeren
Zodra het inrichten van AKS is voltooid, is het cluster online, maar alle knooppunten hebben een NotReady
status, zoals wordt weergegeven in het volgende voorbeeld:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-23902496-vmss000000 NotReady agent 6m9s v1.21.9
$ kubectl get node -o custom-columns='NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].message'
NAME STATUS
aks-nodepool1-23902496-vmss000000 container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized
Op dit moment is het cluster gereed voor installatie van een CNI-invoegtoepassing.
Volgende stappen
Meer informatie over netwerken in AKS vindt u in de volgende artikelen:
Azure Kubernetes Service