Erstellen Sie Kubernetes EndpointSlices

Erstellen Sie Kubernetes Endpointslices



Mit einem Endpunkt-Slice können Sie den Endpunkt des Netzwerks verfolgen, das mit dem Kubernetes-Cluster verbunden ist. In diesem Artikel, den wir für Sie erstellt haben, erfahren Sie mehr über EndpointSlices in der Kubernetes-Umgebung. In diesem Tutorial helfen wir Ihnen zu lernen, was ein EndpointSlice im Kubernetes-Cluster ist und wie Sie ein EndpointSlice in Kubernetes erstellen können. Wir werden einige kubectl-Befehle demonstrieren, mit denen wir einen Endpunkt im Kubernetes-Cluster erstellen können.

Was ist ein EndpointSlice in Kubernetes?

EndpointSlice in Kubernetes ist ein Netzwerkendpunkt-Tracker. Es ermöglicht die Überwachung der Netzwerkendpunkte in einem Kubernetes-Cluster. In einfachen Worten, es ist ein Objekt, das die IP-Adressen von jedem ihm zugewiesenen Pod erhält. Der Kubernetes-Dienst verweist auf dieses Objekt, um den Datensatz der internen IP-Adressen des Pods für die Kommunikation abzurufen. Darüber hinaus werden diese Endpunkte von den Pods verwendet, um sich einem Dienst auszusetzen.

Im Kubernetes-Bereich fungieren diese Endpunkte als Abstraktionsschicht, die dem Kubernetes-Dienst dabei hilft sicherzustellen, dass der Datenverkehr an Pods im Cluster verteilt wird. Wenn jedoch eine Verkehrslast zunimmt, tritt das Problem der Verkehrsskalierung auf. Dies liegt daran, dass ein einzelner Endpunkt alle Netzwerkendpunkte für jeden Dienst enthält. Und wenn diese Quellen auf eine inakzeptable Größe anwachsen, wird die Leistung von Kubernetes negativ beeinflusst. Mit anderen Worten, wenn die Anzahl der Netzwerkendpunkte immens wächst, wird die Fähigkeit von Kubernetes, die Bereitstellung zu skalieren, negativ beeinflusst. Lassen Sie uns dies anhand der folgenden Grafik verstehen:









Hier sehen Sie, dass ein Endpoint alle Pods im Cluster enthält und EndpointSlices die erweiterbare und skalierbare Alternative zum vorhandenen Endpoint sind. Es gibt nur eine Endpoint-Ressource für den gesamten Dienst, aber es gibt mehrere EndpointSlices für denselben Dienst. Die EndpointSlices helfen Ihnen dabei, Ihre Netzwerkressourcen auf diese Weise zu skalieren. Um zu verstehen, wie wichtig dieses Problem der Skalierbarkeit ist, nehmen wir ein Beispiel.



Zum Beispiel hat der Kubernetes-Dienst etwa 9.000 Pods, die irgendwie in 2 MB Endpoint-Ressourcen enden. Ein einzelner Endpunkt verfügt über alle diese Endpunktressourcen der Dienste. Wenn sich ein Netzwerkendpunkt im Endpunkt ändert, muss die gesamte Ressource des Endpunkts auf alle Knoten im Cluster verteilt werden. Wenn es um den Umgang mit einem Cluster mit 3000 Knoten geht, wird dies zu einem großen Problem, da eine große Anzahl von Aktualisierungen an jeden Knoten gesendet werden muss. Wenn Sie also mehr in nur einem einzigen Endpunkt skalieren, wird die Skalierung des Netzwerks umso schwieriger.





Die EndpointSlices lösen dieses Problem jedoch, indem sie es Kubernetes ermöglichen, so weit wie nötig zu skalieren. Anstatt einen einzigen Endpunkt zu verwenden, der eine riesige Liste von IP-Adressen und den zugehörigen Portnummern enthält, verwenden Sie mehrere EndpointSlices. Diese EndpointSlices sind kleine Teile eines riesigen einzelnen Endpunkts. Diese Slices sind viel kleiner, aber sie mildern die Last, die durch den riesigen Endpunkt verursacht wird. Sie können bis zu 100 Pods in einem EndpointSlice speichern. Diese EndpointSlices helfen Ihnen, den Dienst auf einen bestimmten Pod zu verteilen. Wenn sich ein Netzwerkendpunkt ändert, müssen Sie nur Aktualisierungen an ein EndpointSlice senden, das maximal 100 Pods enthält. Alle anderen Pods im Netzwerk bleiben unberührt.

Lassen Sie uns nun lernen, wie wir ein Kubernetes EndpointSlice erstellen können.



Wie werden EndpointSlices in Kubernetes erstellt?

Kubernetes EndpointSlices ist die beste Alternative zu einem einzelnen Endpunkt im Kubernetes-Cluster. Es hilft Ihnen nicht nur, alle Netzwerkendpunkte einfach und effizient zu verfolgen, sondern bietet auch eine bessere Leistung im Vergleich zu einem einzelnen Endpunkt. Es zeigt auch den geringeren Netzwerkverkehr und bietet gleichzeitig Skalierungssicherheit. Darüber hinaus können Sie durch die Verwendung mehrerer EndpointSlices weniger Arbeit auf der Steuerungsebene und den Knoten im Kubernetes-Cluster aufwenden.

In den folgenden Beispielen finden Sie die Schritte, mit denen Sie lernen, wie Sie die EndpointSlices im Kubernetes-Cluster erstellen.

Schritt 1: Starten Sie den Minikube-Cluster

Der erste und wichtigste Schritt besteht darin, sicherzustellen, dass der Minikube-Cluster aktiv ist. Ein inaktiver Minikube-Cluster erlaubt Ihnen keine Arbeit in der Kubernetes-Umgebung, stellen Sie also sicher, dass er sich im aktiven Modus befindet. Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Minikube-Cluster betriebsbereit ist:

> minikube start

Wenn Ihr Minikube-Cluster nicht früher gestartet wurde oder sich im Ruhemodus befindet, weckt dieser Befehl ihn auf und bringt ihn zum Laufen. Jetzt haben Sie einen aktiven Minikube-Cluster. Sie können das EndpointSlice in Ihrer Kubernetes-Umgebung erstellen.

Schritt 2: Erstellen Sie eine Bereitstellung mit der YAML-Datei

Die YAML-Datei wird am häufigsten in Kubernetes zum Erstellen von Bereitstellungen verwendet. Sie können die bereits vorhandene Bereitstellungs-YAML-Datei verwenden oder mit dem folgenden Befehl eine neue erstellen:

> nano endpoint.yaml

Dadurch wird eine neue YAML-Datei mit dem Namen „endpoint.yaml“ erstellt, in der Sie die Bereitstellungsdefinition für die Konfiguration speichern können. Siehe die Deployment-Definition im folgenden Screenshot:

Schritt 3: Erstellen Sie das EndpointSlice mithilfe der YAML-Datei

Da wir nun eine YAML-Datei haben, die die Deployment-Definition enthält, verwenden wir sie, um die EndpointSlices in unserem Kubernetes-Cluster zu erstellen. Wir müssen die Konfigurationsdatei bereitstellen, damit wir die EndpointSlices im Kubernetes-Cluster haben können. Wir verwenden den folgenden Befehl, um die Konfigurationsdatei bereitzustellen:

> kubectl create -f endpoint.yaml

In der Kubernetes-Umgebung werden Ressourcen mit dem Befehl „kubectl create“ erstellt. Daher verwenden wir den Befehl „kubectl create“, um die EndpointSlices aus der YAML-Konfigurationsdatei zu erstellen.

Fazit

Wir haben die EndpointSlices in der Kubernetes-Umgebung untersucht. Das EndpointSlice in Kubernetes ist ein Objekt, das verwendet wird, um alle Netzwerkendpunkte im Kubernetes-Cluster zu verfolgen. Es ist die beste Alternative zu einem riesigen und einzelnen Endpunkt im Kubernetes-Cluster, da es bessere Skalierbarkeits- und Erweiterbarkeitsoptionen ermöglicht. Diese EndpointSlices ermöglichen dem Kubernetes-Cluster eine bessere Leistung, indem weniger Arbeitsaufwand für Knoten und die Steuerungsebene erforderlich ist. Anhand eines Beispiels haben wir gelernt, wie man die EndpointSlices im Kubernetes-Cluster erstellt.