Udostępnij za pośrednictwem


Wtyczka Bring your own Container Network Interface (CNI) z usługą Azure Kubernetes Service (AKS)

Platforma Kubernetes domyślnie nie udostępnia systemu interfejsu sieciowego. Zamiast tego wtyczki sieciowe zapewniają tę funkcjonalność. Usługa Azure Kubernetes Service (AKS) udostępnia kilka obsługiwanych wtyczek CNI. Aby uzyskać informacje na temat obsługiwanych wtyczek, zobacz pojęcia dotyczące sieci usługi AKS.

Obsługiwane wtyczki spełniają większość potrzeb sieciowych na platformie Kubernetes. Jednak zaawansowani użytkownicy usługi AKS mogą chcieć używać tej samej wtyczki CNI używanej w lokalnych środowiskach Kubernetes lub korzystać z zaawansowanych funkcji dostępnych w innych wtyczkach CNI.

W tym artykule pokazano, jak wdrożyć klaster usługi AKS bez wstępnie zainstalowanej wtyczki CNI. Następnie możesz zainstalować dowolną wtyczkę CNI innej firmy, która działa na platformie Azure.

Pomoc techniczna

Pomoc techniczna firmy Microsoft nie może pomóc w rozwiązywaniu problemów związanych z siecią CNI w klastrach wdrożonych za pomocą interfejsu byOCNI (Bring your own Container Network Interface). Na przykład problemy związane z siecią CNI obejmowałyby większość ruchu na wschód/zachód (zasobnik do zasobnika) wraz z podobnymi poleceniami kubectl proxy i podobnymi poleceniami. Jeśli chcesz uzyskać pomoc techniczną dotyczącą interfejsu CNI, użyj obsługiwanej wtyczki sieciowej usługi AKS lub poszukaj pomocy technicznej od innego dostawcy wtyczki BYOCNI.

Obsługa jest nadal zapewniana w przypadku problemów niezwiązanych z siecią CNI.

Wymagania wstępne

  • W przypadku usługi Azure Resource Manager (ARM) lub Bicep użyj co najmniej szablonu w wersji 2022-01-02-preview lub 2022-06-01.
  • W przypadku interfejsu wiersza polecenia platformy Azure użyj co najmniej wersji 2.39.0.
  • Sieć wirtualna klastra usługi AKS musi zezwalać na wychodzącą łączność z Internetem.
  • Klastry usługi AKS mogą nie używać 169.254.0.0/16zakresu 172.30.0.0/16172.31.0.0/16192.0.2.0/24 adresów usługi Kubernetes, zakresu adresów zasobnika lub zakresu adresów sieci wirtualnej klastra.
  • Tożsamość klastra używana przez klaster usługi AKS musi mieć co najmniej uprawnienia Współautor sieci w podsieci w sieci wirtualnej. Jeśli chcesz zdefiniować rolę niestandardową zamiast korzystać z wbudowanej roli Współautor sieci, wymagane są następujące uprawnienia:
    • Microsoft.Network/virtualNetworks/subnets/join/action
    • Microsoft.Network/virtualNetworks/subnets/read
  • Podsieć przypisana do puli węzłów usługi AKS nie może być podsiecią delegowana.
  • Usługa AKS nie stosuje sieciowych grup zabezpieczeń do podsieci ani nie modyfikuje żadnej sieciowej grupy zabezpieczeń skojarzonej z tą podsiecią. Jeśli podasz własną podsieć i dodasz sieciowe grupy zabezpieczeń skojarzone z tą podsiecią, musisz upewnić się, że reguły zabezpieczeń w sieciowych grupach zabezpieczeń zezwalają na ruch w zakresie CIDR węzła. Aby uzyskać więcej informacji, zobacz Sieciowe grupy zabezpieczeń.

Tworzenie klastra usługi AKS bez wstępnie zainstalowanej wtyczki CNI

  1. Utwórz grupę zasobów platformy Azure dla klastra usługi AKS przy użyciu az group create polecenia .

    az group create --location eastus --name myResourceGroup
    
  2. Utwórz klaster usługi AKS przy użyciu az aks create polecenia . --network-plugin Przekaż parametr z wartością parametru none.

    az aks create \
        --location eastus \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --network-plugin none \
        --generate-ssh-keys
    

Wdrażanie wtyczki CNI

Po zakończeniu aprowizacji usługi AKS klaster jest w trybie online, ale wszystkie węzły są w NotReady stanie, jak pokazano w poniższym przykładzie:

  $ 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

W tym momencie klaster jest gotowy do instalacji wtyczki CNI.

Następne kroki

Dowiedz się więcej o sieci w usłudze AKS w następujących artykułach: