Eigenes CNI-Plug-In (Container Network Interface) mit Azure Kubernetes Service (AKS)
Kubernetes stellt standardmäßig kein Netzwerkschnittstellensystem bereit. Stattdessen stellen Netzwerk-Plug-Ins diese Funktionalität bereit. Azure Kubernetes Service (AKS) bietet mehrere unterstützte CNI-Plug-Ins. Informationen zu unterstützten Plug-Ins finden Sie unter AKS-Netzwerkkonzepte.
Die unterstützten Plug-Ins erfüllen die meisten Netzwerkanforderungen in Kubernetes. Fortgeschrittene AKS-Benutzer möchten jedoch möglicherweise dasselbe CNI-Plug-In, das in lokalen Kubernetes-Umgebungen verwendet wird, oder erweiterte Funktionen verwenden, die in anderen CNI-Plug-Ins verfügbar sind.
In diesem Artikel wird beschrieben, wie Sie ein AKS-Cluster ohne vorinstalliertes CNI-Plug-In bereitstellen. Dort können Sie dann jedes CNI-Plug-In von Drittanbietern installieren, das in Azure funktioniert.
Support
Der Microsoft-Support kann keine CNI-bezogenen Probleme in Clustern unterstützen, die mit ByOCNI (Bring Your Own Container Network Interface) bereitgestellt werden. CNI-bezogene Probleme würden z. B. den größten Teil des Ost-West-Datenverkehrs (Pod-zu-Pod) sowie kubectl proxy
und ähnliche Befehle betreffen. Wenn Sie CNI-bezogene Unterstützung benötigen, verwenden Sie ein unterstütztes AKS-Netzwerk-Plug-In, oder suchen Sie Unterstützung vom BYOCNI-Plug-In-Drittanbieter.
Für Probleme, die sich nicht auf das CNI beziehen, wird weiterhin Support bereitgestellt.
Voraussetzungen
- Verwenden Sie für Azure Resource Manager (ARM) oder Bicep mindestens die Vorlagenversion 2022-01-02-preview oder 2022-06-01.
- Verwenden Sie für Azure CLI mindestens Version 2.39.0.
- Das virtuelle Netzwerk des AKS-Clusters muss ausgehende Internetkonnektivität zulassen.
- AKS-Cluster dürfen für den Adressbereich des Kubernetes-Diensts, den Adressbereich für den Pod oder den Adressbereich für das virtuelle Clusternetzwerk nicht
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
oder192.0.2.0/24
verwenden. - Die vom AKS-Cluster verwendete Clusteridentität muss mindestens Berechtigungen Netzwerkmitwirkender für das Subnetz in Ihrem virtuellen Netzwerk haben. Wenn Sie eine benutzerdefinierte Rolle anstelle der integrierten Rolle des Netzwerkmitwirkenden definieren möchten, sind die folgenden Berechtigungen erforderlich:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
- Das Subnetz, das dem AKS-Knotenpool zugewiesen ist, darf kein delegiertes Subnetz sein.
- AKS wendet keine Netzwerksicherheitsgruppen (NSGs) auf das eigene Subnetz an und ändert keine der NSGs, die diesem Subnetz zugeordnet sind. Wenn Sie Ihr eigenes Subnetz bereitstellen und NSGs hinzufügen, die diesem Subnetz zugeordnet sind, müssen Sie sicherstellen, dass die Sicherheitsregeln in den NSGs Datenverkehr im CIDR-Knotenbereich zulassen. Weitere Informationen finden Sie unter Netzwerksicherheitsgruppen.
Erstellen eines AKS-Clusters ohne vorinstalliertes CNI-Plug-In
Erstellen Sie mithilfe des Befehls
az group create
eine Azure-Ressourcengruppe für Ihren AKS-Cluster.az group create --location eastus --name myResourceGroup
Erstellen Sie mit dem Befehl
az aks create
einen AKS-Cluster. Übergeben Sie den Parameter--network-plugin
mit dem Parameterwertnone
.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Bereitstellen eines CNI-Plug-Ins
Nach Abschluss der AKS-Bereitstellung ist der Cluster online, aber alle Knoten befinden sich in einem NotReady
Zustand, wie im folgenden Beispiel gezeigt:
$ 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
An diesem Punkt ist der Cluster für die Installation eines CNI-Plug-Ins bereit.
Nächste Schritte
Weitere Informationen zu Netzwerken in AKS finden Sie in den folgenden Artikeln:
Azure Kubernetes Service