Používání vlastního modulu plug-in Container Network Interface (CNI) se službou Azure Kubernetes Service (AKS)
Kubernetes ve výchozím nastavení neposkytuje systém síťového rozhraní. Místo toho síťové moduly plug-in poskytují tuto funkci. Azure Kubernetes Service (AKS) poskytuje několik podporovaných modulů plug-in CNI. Informace o podporovaných modulech plug-in najdete v konceptech sítí AKS.
Podporované moduly plug-in splňují většinu síťových potřeb v Kubernetes. Pokročilí uživatelé AKS ale můžou chtít použít stejný modul plug-in CNI používaný v místních prostředích Kubernetes nebo používat pokročilé funkce dostupné v jiných modulech plug-in CNI.
Tento článek ukazuje, jak nasadit cluster AKS bez předinstalovaného modulu plug-in CNI. Odtud můžete nainstalovat jakýkoli modul plug-in CNI třetí strany, který funguje v Azure.
Technická podpora
Podpora Microsoftu nemůže pomoct s problémy souvisejícími s CNI v clusterech nasazených pomocí funkce ByOCNI (Bring your own Container Network Interface). Problémy související s CNI by například zahrnovaly většinu provozu mezi východem a západem (podem a podem) a kubectl proxy
podobnými příkazy. Pokud chcete podporu související s CNI, použijte podporovaný síťový modul plug-in AKS nebo vyhledejte podporu od externího dodavatele modulu plug-in BYOCNI.
Podpora se stále poskytuje pro problémy nesouvisené s CNI.
Požadavky
- Pro Azure Resource Manager (ARM) nebo Bicep použijte alespoň šablonu verze 2022-01-02-preview nebo 2022-06-01.
- Pro Azure CLI použijte alespoň verzi 2.39.0.
- Virtuální síť pro cluster AKS musí umožňovat odchozí připojení k internetu.
- Clustery AKS nemusí používat
169.254.0.0/16
, ,172.30.0.0/16
,172.31.0.0/16
ani192.0.2.0/24
pro rozsah adres služby Kubernetes, rozsah adres podů nebo rozsah adres virtuální sítě clusteru. - Identita clusteru používaná clusterem AKS musí mít v podsíti ve vaší virtuální síti alespoň oprávnění Přispěvatel sítě. Pokud chcete místo předdefinované role Přispěvatel sítě definovat vlastní roli , musíte mít následující oprávnění:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
- Podsíť přiřazená k fondu uzlů AKS nemůže být delegovaná podsíť.
- AKS nepoužije skupiny zabezpečení sítě (NSG) u své podsítě ani neupravuje žádné skupiny zabezpečení sítě přidružené k této podsíti. Pokud zadáte vlastní podsíť a přidáte skupiny zabezpečení sítě přidružené k této podsíti, musíte zajistit, aby pravidla zabezpečení v NSG umožňovala provoz v rozsahu CIDR uzlu. Další informace najdete v tématu Skupiny zabezpečení sítě.
Vytvoření clusteru AKS bez předinstalovaného modulu plug-in CNI
Pomocí příkazu vytvořte skupinu prostředků Azure pro cluster
az group create
AKS.az group create --location eastus --name myResourceGroup
Pomocí příkazu vytvořte cluster
az aks create
AKS.--network-plugin
Předejte parametr s hodnotou parametrunone
.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Nasazení modulu plug-in CNI
Po dokončení zřizování AKS je cluster online, ale všechny uzly jsou ve NotReady
stavu, jak je znázorněno v následujícím příkladu:
$ 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
V tuto chvíli je cluster připravený k instalaci modulu plug-in CNI.
Další kroky
Další informace o sítích v AKS najdete v následujících článcích:
Azure Kubernetes Service