Sdílet prostřednictvím


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/16ani 192.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

  1. Pomocí příkazu vytvořte skupinu prostředků Azure pro cluster az group create AKS.

    az group create --location eastus --name myResourceGroup
    
  2. Pomocí příkazu vytvořte cluster az aks create AKS. --network-plugin Předejte parametr s hodnotou parametru none.

    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: