Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konfigurieren von
kube-proxy ist eine Komponente von Kubernetes, die den Routing-Datenverkehr für Dienste innerhalb des Clusters verarbeitet. Es gibt drei Back-Ends im Upstream für den Layer-3/4-Lastenausgleich kube-proxy: iptables, IPVS und nftables.
-
iptablesist das Standard-Back-End, das in vielen Kubernetes-Clustern verwendet wird. Es ist einfach und gut unterstützt, aber nicht so effizient oder intelligent wieIPVS. -
IPVSverwendet den virtuellen Linux-Server, einen Layer 3/4-Lastenausgleich, der in den Linux-Kernel integriert ist.IPVSbietet viele Vorteile gegenüber der Standardkonfigurationiptables, einschließlich Zustandsbewusstsein, Verbindungsverfolgung und intelligenterer Lastenausgleich.IPVSunterstützt keine Azure-Netzwerkrichtlinie. -
nftablesist der Nachfolger deriptablesAPI und soll eine bessere Leistung und Skalierbarkeit bieten alsiptables. DernftablesProxymodus ist im Wesentlichen ein Ersatz für beideiptablesundIPVSModus, mit besserer Leistung als jeder von ihnen, und wird als Ersatz fürIPVSempfohlen.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation auf kube-proxy.
Hinweis
Sie können die von AKS verwaltete kube-proxyDaemonSet deaktivieren, um „eigenes CNI mitbringen” zu unterstützen.
Wichtig
AKS-Previewfunktionen stehen gemäß dem Self-Service- und Aktivierungsprinzip zur Verfügung. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von den Vereinbarungen zum Service Level und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Voraussetzungen
- Wenn Sie die Azure CLI verwenden, benötigen Sie die
aks-previewErweiterung. Siehe Installieren Sie dieaks-previewAzure CLI-Erweiterung. - Wenn Sie Azure Resource Manager oder die REST-API verwenden, muss die AKS-API-Version 2022-08-02-preview oder höher sein. Speziell für den
nftables-Modus muss die Version 2025-09-02-preview oder höher sein. - Sie müssen das Funktions-Flag
KubeProxyConfigurationPreviewregistrieren. Siehe Registrieren Sie dasKubeProxyConfigurationPreviewFunktions-Flag.
Installieren der Azure CLI-Erweiterung aks-preview
Installieren Sie die „
aks-preview“-Erweiterung mithilfe des Befehls „az extension add“.az extension add --name aks-previewFühren Sie mit dem Befehl
az extension updateein Update auf die neueste Version der Erweiterung aus.az extension update --name aks-preview
Registrieren des KubeProxyConfigurationPreview-Feature-Flags
Registrieren Sie das Feature-Flag
KubeProxyConfigurationPreviewmithilfe des Befehlsaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"Es dauert einige Minuten, bis der Status Registered (Registriert) angezeigt wird.
Überprüfen Sie den Registrierungsstatus mithilfe des Befehls
az feature show.az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"Wenn der Status "Registriert" angezeigt wird, aktualisieren Sie die Registrierung des Ressourcenanbieters mithilfe des
Microsoft.ContainerServiceaz provider registerBefehls.az provider register --namespace Microsoft.ContainerService
kube-proxy Konfigurationsoptionen
Sie finden die vollständige kube-proxy-Konfigurationsstruktur im AKS-Clusterschema.
-
enabled: Bestimmt die Bereitstellung des DaemonSetskube-proxy. Wird standardmäßig auftruefestgelegt. -
mode: Sie können entwederIPTABLES,IPVSoderNFTABLESeinstellen. Wird standardmäßig aufIPTABLESfestgelegt. -
ipvsConfig: FallsmodeaufIPVSfestgelegt ist, enthält dieses Objekt IPVS-spezifische Konfigurationseigenschaften.-
scheduler: Bestimmt, welcher Verbindungsplaner verwendet werden soll. Unterstützte Werte:-
LeastConnection: Sendet Verbindungen an den Back-End-Pod mit den wenigsten Verbindungen. -
RoundRobin: Verteilt Verbindungen gleichmäßig auf die Back-End-Pods.
-
-
tcpFinTimeoutSeconds: Legt den Wert der Timeout-Länge fest, nachdem eine TCP-Sitzung eine FIN empfangen hat. -
tcpTimeoutSeconds: Legt den Wert der Timeout-Länge für inaktive TCP-Sitzungen fest. -
udpTimeoutSeconds: Legt den Wert der Timeout-Länge für inaktive UDP-Sitzungen fest.
-
IPVS Der Lastenausgleich wird in jedem Knoten unabhängig ausgeführt und kennt nur Verbindungen, die über den lokalen Knoten fließen. Dies bedeutet, dass LeastConnection bei einer höheren Anzahl von Verbindungen zu einer gleichmäßigeren Auslastung führt, während bei einer geringen Anzahl von Verbindungen (# connects < 2 * node count) der Datenverkehr möglicherweise unausgewogen ist.
Verwenden Sie kube-proxy in einem neuen oder vorhandenen AKS-Cluster
Die kube-proxy Konfiguration ist eine clusterweite Einstellung. Sie brauchen Ihre Dienste nicht zu aktualisieren.
Eine Änderung der kube-proxy Konfiguration kann zu einer leichten Unterbrechung des Datenverkehrsflusses des Clusterdiensts führen.
Erstellen Sie eine Konfigurationsdatei mit der gewünschten
kube-proxy-Konfiguration.IPVS: Die folgende Konfiguration aktiviertIPVSz. B. denLeastConnectionScheduler und legt das TCP-Timeout auf 900 Sekunden fest.{ "enabled": true, "mode": "IPVS", "ipvsConfig": { "scheduler": "LeastConnection", "tcpTimeoutSeconds": 900, "tcpFinTimeoutSeconds": 120, "udpTimeoutSeconds": 300 } }nftables: Zum Beispiel aktiviert die folgende Konfiguration dennftablesModus.{ "enabled": true, "mode": "NFTABLES" }
Erstellen Sie einen neuen Cluster, oder aktualisieren Sie einen vorhandenen Cluster mit der Konfigurationsdatei mithilfe der
az aks createOderaz aks updateBefehle. Verwenden Sie den--kube-proxy-configParameter, um die Konfigurationsdatei anzugeben.# Create a new cluster az aks create \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json \ --generate-ssh-keys # Update an existing cluster az aks update \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json
Nächste Schritte
In diesem Artikel wird beschrieben, wie Sie kube-proxy im Azure Kubernetes Service (AKS) konfigurieren. Weitere Informationen zum Lastenausgleich in AKS finden Sie in den folgenden Artikeln: