Mit nftables zu besserer Performance: kube-proxy neu gedacht
Entdecken Sie, wie nftables in Kubernetes 1.29 die Performance von kube-proxy verbessert und was das für Ihre Anwendungen bedeutet.
Einleitung
In der Welt von Kubernetes gibt es stetige Entwicklungen, die die Performance und Effizienz von Anwendungen verbessern. Eine der spannendsten Neuerungen ist die Einführung des nftables-Modus für kube-proxy in Kubernetes 1.29, der nun in der Beta-Phase ist und voraussichtlich in Version 1.33 als stabiler Bestandteil verfügbar sein wird. Diese neue Funktion zielt darauf ab, die langjährigen Performanceprobleme des bisherigen iptables-Modus zu beheben.
Was ändert sich konkret für Entwickler/DevOps-Teams?
Die Verwendung von nftables bringt signifikante Verbesserungen mit sich, insbesondere in Bezug auf die Latenz beim Datenverkehr. Der iptables-Modus war ursprünglich für einfache Firewall-Anwendungen konzipiert und hat Schwierigkeiten, mit der Vielzahl an Services in großen Kubernetes-Clustern umzugehen. Je mehr Services vorhanden sind, desto mehr Regeln müssen im iptables-Modus verarbeitet werden, was die Latenz bei der ersten Anfrage negativ beeinflusst.
Im Gegensatz dazu ermöglicht nftables, alle Service-Anfragen mit einer einzigen Regel zu verarbeiten, was die Latenz erheblich reduziert. Hier ein Beispiel, wie die Regeln in nftables aussehen könnten:
nft
table ip kube-proxy {
map service-ips {
type ipv4_addr . inet_proto . inet_service : verdict
comment “ClusterIP, ExternalIP und LoadBalancer IP traffic”
elements = { 172.30.0.41 . tcp . 80 : goto service-ULMVA6XW-namespace1/service1/tcp/p80,
172.30.0.42 . tcp . 443 : goto service-42NFTM6N-namespace2/service2/tcp/p443,
172.30.0.43 . tcp . 80 : goto service-4AT6LBPK-namespace3/service3/tcp/p80,
… }
}
}
Praktische Beispiele oder Anwendungsfälle
Die Umstellung auf nftables ist für alle Benutzer von Kubernetes, die auf neueren Kernels arbeiten, empfehlenswert. Besonders in großen Clustern mit vielen Services wird die Latenz beim ersten Paket erheblich verringert, was die Gesamtperformance der Anwendung verbessert. Dies ist besonders wichtig für Unternehmen, die auf schnelle und zuverlässige Netzwerkverbindungen angewiesen sind.
Ein weiterer Vorteil besteht darin, dass, selbst wenn nftables zum stabilen Standard wird, iptables weiterhin als Fallback verfügbar bleibt. So können Teams schrittweise umstellen und sicherstellen, dass ihre Anwendungen reibungslos weiterlaufen.
Bei ayedo unterstützen wir Unternehmen dabei, Kubernetes optimal zu nutzen und die Vorteile neuer Technologien wie nftables zu integrieren. Nutzen Sie diese Gelegenheit, um Ihre Kubernetes-Umgebung zu optimieren und die Performance Ihrer Anwendungen zu steigern!
Quelle: Kubernetes Blog