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 Routingdatenverkehr für Dienste innerhalb des Clusters verarbeitet. Es gibt zwei Back-Ends für Layer 3/4-Lastenausgleich in Upstream-kube-proxy
: iptables und IPVS.
- Das standardmäßige Back-End iptables wird in den meisten Kubernetes-Clustern verwendet. Es ist einfach und gut unterstützt, aber nicht so effizient oder intelligent wie IPVS.
- IPVS nutzt den Linux Virtual Server, einen in den Linux-Kernel integrierten Layer 3/4-Lastenausgleich. IPVS bietet eine Reihe von Vorteilen gegenüber der iptables-Standardkonfiguration, beispielsweise Zustandsbewusstsein, Verbindungsverfolgung und intelligenteren Lastenausgleich. IPVS unterstützt Azure Network-Richtlinie nicht.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation auf kube-proxy.
Hinweis
Wenn Sie möchten, können Sie das von AKS verwaltete kube-proxy
DaemonSet deaktivieren, um bring-your-own CNI 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 Service Level Agreements und der Herstellergarantie 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 Erweiterung
aks-preview
. Siehe Installieren Sie dieaks-preview
Azure CLI-Erweiterung. - Wenn Sie ARM oder die REST-API verwenden, muss die AKS-API-Version 2022-08-02-Vorschau oder höher sein.
- Sie müssen das Funktionsflag
KubeProxyConfigurationPreview
registrieren. Siehe Registrieren Sie dasKubeProxyConfigurationPreview
Funktionsflag.
Installieren der Azure CLI-Erweiterung aks-preview
Installieren Sie die „
aks-preview
“-Erweiterung mithilfe des Befehls „az extension add
“.az extension add --name aks-preview
Führen Sie mit dem Befehl
az extension update
ein Update auf die neueste Version der Erweiterung aus.az extension update --name aks-preview
Registrieren des KubeProxyConfigurationPreview
-Featureflags
Registrieren Sie das Featureflag
KubeProxyConfigurationPreview
mithilfe 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 Zustand Registered (Registriert) lautet, aktualisieren Sie die Registrierung des Ressourcenanbieters Microsoft.ContainerService mithilfe des Befehls
az provider register
.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 auftrue
festgelegt.mode
: Sie können entwederIPTABLES
oderIPVS
festlegen. Wird standardmäßig aufIPTABLES
festgelegt.ipvsConfig
: Fallsmode
aufIPVS
festgelegt 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.
Hinweis
Der IPVS-Lastenausgleich funktioniert in jedem Knoten unabhängig und kennt nur die Verbindungen, die durch den lokalen Knoten fließen. Dies bedeutet, dass LeastConnection
zwar bei einer höheren Anzahl von Verbindungen zu einer gleichmäßigeren Auslastung führt, dass aber bei einer geringen Anzahl von Verbindungen (Anzahl der Verbindungen < 2 * Knotenanzahl) der Datenverkehr relativ unausgewogen sein kann
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.
Warnung
Das Ändern der kube-proxy-Konfiguration kann zu einer leichten Unterbrechung des Datenverkehrsflusses im Clusterdienst führen.
Erstellen Sie eine Konfigurationsdatei mit der gewünschten
kube-proxy
-Konfiguration. Die folgende Konfiguration aktiviert beispielsweise IPVS mit demLeastConnection
-Scheduler und legt das TCP-Timeout auf 900 Sekunden fest.{ "enabled": true, "mode": "IPVS", "ipvsConfig": { "scheduler": "LeastConnection", "TCPTimeoutSeconds": 900, "TCPFINTimeoutSeconds": 120, "UDPTimeoutSeconds": 300 } }
Erstellen Sie einen neuen Cluster, oder aktualisieren Sie einen vorhandenen Cluster mit der Konfigurationsdatei mithilfe des Befehls
az aks create
oderaz aks update
mit dem Parameter--kube-proxy-config
, der auf die Konfigurationsdatei festgelegt ist.# 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
Dieser Artikel behandelt, wie Sie in Azure Kubernetes Service (AKS) kube-proxy
konfigurieren. Weitere Informationen zum Lastenausgleich in AKS finden Sie in den folgenden Artikeln:
Azure Kubernetes Service