ninog - Fotolia
Anleitung: So gelingt der Einstieg in Weave für Kubernetes
Sie möchten die Netzwerkverwaltung für Kubernetes-Cluster rationalisieren? Erfahren Sie, alles, was Sie über CNI-Plugins und den Einstieg in Weave wissen sollten.
Unter den vielen Container Networking Interface Plugins für Kubernetes ist Weave Net, ein Kubernetes Networking -Tool von Weaveworks, eines der leistungsfähigsten.
Erfahren Sie, warum Sie sich für Weave als Kubernetes CNI-Plugin entscheiden sollten – oder auch nicht – und lernen Sie seine Vorteile sowie die wichtigsten Unterschiede zu anderen beliebten Optionen kennen. Anschließend gehen Sie durch den Weave-Einrichtungsprozess für ein typisches Kubernetes-Cluster.
Was ist Weave Net?
Weave Net, oft einfach Weave genannt, ist ein Open Source CN Plugin, das virtuelle Netzwerke für Container erstellt, die in einem Kubernetes-Cluster gehostet werden.
Weave bietet die virtuelle Netzwerkinfrastruktur, die Container zum Kommunizieren benötigen. Außerdem unterstützt es das Erkennen von Diensten, richtlinienbasierte Netzwerkkontrolle und Datenverschlüsselung.
Vorteile des Weave CNI-Plugins
Wenn Sie mit Kubernetes-Netzwerken vertraut sind, wissen Sie, dass Weave Net nur eines von vielen CNI-Plugins ist, die heute verfügbar sind. Andere beliebte Optionen sind Calico, Flannel und Cilium.
Sie alle erfüllen dieselbe Funktion: Sie richten ein virtuelles Netzwerk auf der Grundlage des Container Network Interface-Standards ein, den Kubernetes standardmäßig für die Netzwerkverwaltung verwendet.
Das Weave CNI-Plugin sticht aufgrund seines Funktionsumfangs heraus. Weave erfüllt nicht nur die wesentlichen CNI-Anforderungen zum Bereitstellen eines virtuellen Netzwerks, sondern es bietet mehrere zusätzliche Funktionen:
- Serviceerkennung. Das hilft Containern, sich gegenseitig im Netzwerk zu identifizieren.
- Load Balancing. Dadurch wird die Netzwerklast effizient auf die Container verteilt.
- Fehlertoleranz. Dies minimiert Netzwerkfehler.
- Multicast-Unterstützung. Damit senden Benutzer ein einzelnes Paket auf effiziente und einfache Weise an mehrere Empfänger.
- NAT-Traversal (Network Address Translation). Dies erleichtert das Weiterleiten des Datenverkehrs zwischen Ressourcen ohne öffentliche IP-Adressen.
Ein weiterer Vorteil von Weave gegenüber einigen CNI-Plugins der Konkurrenz ist sein minimaler Ressourcen-Overhead. Dadurch stellen Sie sicher, dass Weave Ihre Cluster nicht übermäßig belastet und dass Ihren Workloads deutlich mehr Ressourcen zur Verfügung stehen.
Weave ist außerdem mit praktisch jeder Kubernetes-Distribution und Cluster-Bereitstellungstechnik kompatibel. Unabhängig davon, ob Sie Kubernetes mit einer vollständig verwalteten, Cloud-basierten Distribution wie Amazon Elastic Kubernetes Service (EKS) oder Google Kubernetes Engine (GKE), auf einer selbst verwalteten Cloud-Infrastruktur oder vor Ort bereitstellen, können Sie Weave als Ihr Netzwerk-Plugin verwenden.
Weave versus Calico, Flannel und andere CNI-Plugins für Kubernetes
In Bezug auf die Funktionen ist Weave mit anderen wichtigen CNI-Plugins für Kubernetes, wie Calico und Flannel, vergleichbar. Letztere bieten weitgehend die gleichen Funktionen wie Weave und sind in ähnlicher Weise mit praktisch jeder Kubernetes-Umgebung oder -Distribution kompatibel.
Es gibt jedoch einige Leistungsunterschiede zwischen Weave, Calico und Flannel. So zeigten Tests des DevOps-Ingenieurs Jeff Wenzbauer, dass Weave im Allgemeinen die höchste Netzwerkleistung aller von ihm getesteten generischen CNI-Plugins bietet.
In den gleichen Tests hatte Weave zudem die niedrigste CPU-Auslastung, aber einen höheren Speicherbedarf. Das Amazon VPC CNI-Plugin schnitt in einigen Szenarien besser ab. Da es aber nur mit AWS-basierten Containern kompatibel ist, gehört es nicht in dieselbe Kategorie wie die flexibleren Weave, Calico und Flannel.
Die Leistung von Weave varriert je nach den spezifischen Gegebenheiten in Ihrer Einrichtung. Man kann nicht sagen, dass Weave immer eine bessere Leistung als Calico oder Flannel bietet oder dass sein Speicherbedarf immer höher ist. Wenn Ihnen die Optimierung wichtig ist, sollten Sie verschiedene CNI-Plugin-Optionen in Ihrer Umgebung testen, um das beste Tool zu ermitteln.
So richten Sie ein Pod-Netzwerk mit Weave ein
Um Weave innerhalb von Kubernetes einzurichten, führen Sie den folgenden einzelnen kubectl-Befehl aus.
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
Zum Zeitpunkt der Veröffentlichung (April 2023) wird mit diesem Befehl die neueste Version von Weave installiert. Wenn Sie Weave zu einem späteren Zeitpunkt installieren möchten, sollten Sie prüfen, ob es inzwischen eine neuere Version gibt.
Das Einrichten von Weave erfordert zusätzliche Schritte, wenn Sie bestimmte verwaltete Kubernetes-Dienste verwenden, darunter EKS und GKE. Möglicherweise müssen Sie einige Berechtigungen oder Netzwerkeinstellungen anpassen, damit Weave unter diesen Kubernetes-Distributionen funktioniert.
Um sicherzustellen, dass Weave Net nach der Installation ordnungsgemäß läuft, verwenden Sie den folgenden kubectl-Befehl, um zu überprüfen, ob die Weave-Pods funktionieren.
kubectl get pods -n kube-system -l name=weave-net
Der Befehl sollte eine Liste der Pods zurückgeben, mit einer Ausgabe ähnlich der folgenden:
NAME READY STATUS RESTARTS AGE weave-net-1jkl6 2/2 Running 0 1d
weave-net-bskbv 2/2 Running 0 1d
weave-net-m4x1b 2/2 Running 0 1d
Wenn der Befehl keine Ausgabe liefert, ist Weave gerade nicht aktiv. Wenn in der Statusspalte etwas anderes als Running erscheint, haben Sie ebenfalls ein Problem. In diesem Fall überprüfen Sie die Pod-Protokolle mit dem folgenden Befehl auf weitere Informationen.
kubectl logs -n kube-system [pod-name] weave
Sobald Weave in Ihrem Cluster läuft, interagieren Sie damit, indem Sie das Weave-Skript mit diesen Befehlen auf Ihren Knoten installieren.
sudo curl -L git.io/weave -o /usr/local/bin/weave
sudo chmod a+x /usr/local/bin/weave
Rufen Sie das Skript dann mit Befehlen wie weave status auf.
Alternativ können Sie mit Weave auch über kubectl-Befehle interagieren. Dieser Ansatz ist zwar etwas umständlicher, macht aber die Installation von Software auf Ihren Hosts überflüssig. Einzelheiten zur Verwaltung von Weave über kubectl finden Sie in der Weave-Dokumentation.