Ta med ditt eget CNI-plugin-program (Container Network Interface) med Azure Kubernetes Service (AKS)
Kubernetes tillhandahåller inte något nätverksgränssnittssystem som standard. I stället tillhandahåller nätverksinsticksprogram den här funktionen. Azure Kubernetes Service (AKS) innehåller flera CNI-plugin-program som stöds. Information om plugin-program som stöds finns i begreppen för AKS-nätverk.
Plugin-program som stöds uppfyller de flesta nätverksbehoven i Kubernetes. Avancerade AKS-användare kanske vill ha samma CNI-plugin-program som används i lokala Kubernetes-miljöer eller använda avancerade funktioner som är tillgängliga i andra CNI-plugin-program.
Den här artikeln visar hur du distribuerar ett AKS-kluster utan förinstallerat CNI-plugin-program. Därifrån kan du sedan installera alla CNI-plugin-program från tredje part som fungerar i Azure.
Support
Microsoft-supporten kan inte hjälpa till med CNI-relaterade problem i kluster som distribueras med BYOCNI (Bring your own Container Network Interface). Till exempel skulle CNI-relaterade problem täcka de flesta trafik från öst/väst (podd till podd) tillsammans med kubectl proxy
och liknande kommandon. Om du vill ha CNI-relaterad support kan du använda ett AKS-nätverkstillägg som stöds eller söka support från BYOCNI-plugin-programmets tredjepartsleverantör.
Stöd ges fortfarande för icke-CNI-relaterade problem.
Förutsättningar
- För Azure Resource Manager (ARM) eller Bicep använder du minst mallversion 2022-01-02-preview eller 2022-06-01.
- För Azure CLI använder du minst version 2.39.0.
- Det virtuella nätverket för AKS-klustret måste tillåta utgående Internetanslutning.
- AKS-kluster får inte använda
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
eller192.0.2.0/24
för Kubernetes-tjänstens adressintervall, poddadressintervall eller klusteradressintervall för virtuella nätverk. - Klusteridentiteten som används av AKS-klustret måste ha minst behörighet som nätverksdeltagare i undernätet i det virtuella nätverket. Om du vill definiera en anpassad roll i stället för att använda den inbyggda rollen Nätverksdeltagare krävs följande behörigheter:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
- Det undernät som tilldelats AKS-nodpoolen kan inte vara ett delegerat undernät.
- AKS tillämpar inte nätverkssäkerhetsgrupper (NSG: er) på dess undernät eller ändrar någon av de NSG:er som är associerade med det undernätet. Om du anger ett eget undernät och lägger till NSG:er som är associerade med det undernätet måste du se till att säkerhetsreglerna i NSG:erna tillåter trafik inom nodens CIDR-intervall. Mer information finns i Nätverkssäkerhetsgrupper.
Skapa ett AKS-kluster utan förinstallerat CNI-plugin-program
Skapa en Azure-resursgrupp för ditt AKS-kluster med hjälp av
az group create
kommandot .az group create --location eastus --name myResourceGroup
Skapa ett AKS-kluster med kommandot
az aks create
. Skicka parametern--network-plugin
med parametervärdetnone
.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Distribuera ett CNI-plugin-program
När AKS-etableringen är klar är klustret online, men alla noder är i ett NotReady
tillstånd, vilket visas i följande exempel:
$ 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
Nu är klustret redo för installation av ett CNI-plugin-program.
Nästa steg
Läs mer om nätverk i AKS i följande artiklar:
Azure Kubernetes Service