Delen via


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/16mogelijk geen, 172.30.0.0/16of 172.31.0.0/16192.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

  1. Maak een Azure-resourcegroep voor uw AKS-cluster met behulp van de az group create opdracht.

    az group create --location eastus --name myResourceGroup
    
  2. Maak een AKS-cluster met behulp van de az aks create opdracht. Geef de --network-plugin parameter door met de parameterwaarde van none.

    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: