So legen Sie die Kubernetes-Toleranzen fest

So Legen Sie Die Kubernetes Toleranzen Fest



Heute lernen wir anhand einfacher und grundlegender Beispiele etwas über Toleranz in Kubernetes. In diesem Artikel lernen Sie das grundlegende Konzept der Toleranz in Kubernetes kennen und erfahren, wie es in Kubernetes implementiert werden kann, um die Pods zu planen. Da Toleranz und Taints zusammenwirken, werden wir auch eine kurze Diskussion über Taints führen, um das gesamte Konzept von Taint und Toleranz in Kubernetes zu verstehen. Beginnen wir mit den grundlegenden Definitionen von Makel und Toleranz.

Was sind Tolerations und Taints in Kubernetes?

Toleration und Taint in Kubernetes werden verwendet, um sicherzustellen, dass die Pods im richtigen Knoten platziert werden. Die Toleranz wird in der Pod-Spezifikation definiert, während die Markierungen in der Knotenspezifikation definiert werden. Wenn Sie die Toleranz auf einen Pod anwenden, kann der Planer die Pods auf einem bestimmten Knoten planen. Die Taints wirken jedoch der Tolerierung entgegen. Es ermöglicht dem Knoten, die Pods abzulehnen, die darauf geplant werden sollen. Die Pods dürfen nur auf dem Knoten geplant werden, wenn auf sie Toleranzen mit übereinstimmenden Markierungen angewendet wurden.

Kubernetes arbeitet mit Pods, Clustern, Knoten, Ereignissen usw. In einigen Fällen benötigt Kubernetes Toleranzen und Taints, um diese Dinge zu verwalten. Toleranz ist die Implementierung des Scheduling-Prozesses. Die Pods müssen so geplant werden, dass sie ordnungsgemäß funktionieren und bei Bedarf über genügend Ressourcen verfügen, um ihren Betrieb auszuführen. Auf die Kapseln werden Toleranzen gegen Verunreinigung angewendet, damit sie während der Arbeit keine Unterbrechung oder Unterbrechung erfahren.







Die Taints in Kubernetes ermöglichen es einem Pod, die Planung eines Pods abzulehnen. Es wird auf einen Knoten angewendet, indem die Knotenspezifikation „NodeSpec“ verwendet wird. Der Scheduler ist nicht in der Lage, einen Pod auf einem Knoten zu platzieren, der einen Taint enthält. Wenn Sie die Pods jedoch auf einem Knoten planen müssen, auf dem bereits ein Taint angewendet wird, müssen Sie die Tolerierung dagegen erklären.



Die Toleranz in Kubernetes ermöglicht die Planung eines Pods auf einem Knoten, auf dem bereits ein Taint angewendet wurde. Die Toleranz auf einem Pod wird mithilfe der „PodSpec“-Pod-Spezifikation angewendet. Wenn Sie die Toleranz auf einen Pod mit passendem Taint anwenden, kann der Planer die Pods einfach auf einem bestimmten Knoten planen.



Lassen Sie uns nun ein Szenario vorstellen, das Ihnen hilft zu verstehen, wie Sie die Toleranz auf einem Pod in Kubernetes implementieren können. Bevor Sie mit dem Implementierungsabschnitt fortfahren, vergewissern Sie sich, dass alle Voraussetzungen erfüllt sind.





Voraussetzung:

Im Folgenden sind die Dinge aufgeführt, die Sie benötigen, um die Toleranz auf einem Knoten in Kubernetes zu implementieren:

  • Ubuntu 20.04 oder eine andere neueste Version eines beliebigen Linux-Systems
  • Minikube (neueste Version)
  • Installierte virtuelle Maschine in Ihrem Linux/Unix-System
  • Kubectl-Befehlszeilentool

Unter der Annahme, dass Ihr System alle Voraussetzungen erfüllt, beginnen wir mit der Festlegung der Kubernetes-Toleranz.



Schritt 1: Starten Sie das Minikube-Terminal

Als Erstes müssen Sie das Minikube-Terminal starten, damit Sie die kubectl-Befehle für die Implementierung der Kubernetes-Toleranz auf einem Knoten verwenden können. Um den Minikube zu starten, wird folgender Befehl verwendet:

> minikube start

Nach der Ausführung dieses Befehls erhalten Sie die folgende Ausgabe in Ihrem Terminal:

Schritt 2: Holen Sie sich die Liste der aktiven Knoten

Nachdem wir den Minikube gestartet haben, ist unser System bereit, die Toleranz für Pods in Kubernetes festzulegen. Bevor wir die Toleranz für die Pods festlegen, prüfen wir, wie viele Knoten und welche Art von Knoten wir bereits haben. Dazu verwenden wir den folgenden nachfolgenden Befehl:

> kubectl erhält Knoten -Die =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintWert:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] .Wirkung

Diese Anweisung listet alle Knoten auf, die von der Kubernetes-Standardinstallation betroffen sind. Sehen wir uns zunächst die Ausgabe dieses Befehls an. Dann besprechen wir die Liste der Knoten:

Da es keine Nodes gibt, die von der Standardinstallation von Kubernetes erstellt und befleckt werden, und wir auch keine Nodes speziell erstellt haben, ist das Ergebnis . Aus der vorherigen Ausgabe können wir sehen, dass es keinen Knoten gibt. Daher erstellen wir zuerst den Knoten und legen dann die Toleranz fest. Um die Toleranz für einen Pod in Kubernetes festzulegen, müssen wir zuerst eine App in einem Cluster bereitstellen. Die nächsten Schritte zeigen, wie Sie eine App in einem Cluster bereitstellen.

Schritt 3: Erstellen Sie einen Namespace

Zuerst erstellen wir einen Namespace, um eine App auf einem Cluster bereitzustellen. Hier erstellen wir mit Hilfe des folgenden Befehls eine App mit dem Wert „frontend“:

> kubectl erstellt ein ns-Frontend

Dieser Befehl erstellt den Namespace mit dem Wert „frontend“. Siehe folgende Ausgabe:

Schritt 4: Stellen Sie den Nginx-Pod im Namespace bereit

Stellen Sie nun den nginx-Pod auf dem soeben erstellten Namespace bereit. Wir verwenden den folgenden Befehl, um nginx bereitzustellen:

> kubectl nginx ausführen – Bild =nginx –Namespace-Frontend

Dadurch wird eine App auf einem Cluster ohne Toleranzkonfiguration in der Spezifikation der App-Bereitstellung bereitgestellt. Mit dem kubectl-Befehl stellen wir den nginx-Pod auf dem Namespace-Frontend bereit:

  Textbeschreibung automatisch generiert

Schritt 5: Holen Sie sich die Liste der Pods

Lassen Sie uns nun die erstellten Pods überprüfen, um ihren Status anzuzeigen. Der angegebene Befehl listet auch alle Pods und deren Status auf:

> kubectl erhält Pods -n Frontend

Da wir nur nginx erstellt haben, sollte dieser Befehl diesen Pod mit seinem Status auflisten. Siehe folgende Ausgabe:

Schritt 6: Analysieren Sie die Kubernetes-Ereignisse

Lassen Sie uns nun die Ereignisse in Kubernetes analysieren, damit wir die Toleranz für die Pods entsprechend festlegen können. Wir verwenden den folgenden kubectl-Befehl, um die Liste der Ereignisse in Kubernetes abzurufen:

> kubectl erhält Ereignisse -n Frontend

Dies listet alle Ereignisse auf, die dem Frontend-Wert zugeordnet sind, zusammen mit ihren Eigenschaften wie Typ, Grund, Objekt und Nachricht. Siehe die angegebene Liste in der folgenden Ausgabe:

  Textbeschreibung automatisch generiert

Wie Sie der vorherigen Ausgabe entnehmen können, wird der nginx-Pod mit der spezifischen Toleranz geplant. Die Eigenschaft „Nachricht“ zeigt die Liste der Aktionen, die während des Prozesses ausgeführt werden.

Schritt 7: Überprüfen Sie den Status der Pods

Der letzte Schritt besteht darin, den Status des zuvor erstellten Pods erneut zu überprüfen, um sicherzustellen, dass er erfolgreich auf einem bestimmten und richtigen Knoten geplant ist. Dazu verwenden wir den folgenden kubectl-Befehl:

> kubectl erhält Pods -n Frontend

Wie in der vorherigen Ausgabe zu sehen ist, darf der Pod jetzt auf dem Taint-Knoten ausgeführt werden, da die Toleranz dagegen gesetzt ist.

Fazit

In diesem Leitfaden haben wir uns mit den Makeln und der Toleranz befasst. Wir haben etwas über die grundlegende Funktionsweise von Makeln und Tolerierung gelernt. Dann haben wir die Toleranz auf einem Pod implementiert. Anhand eines einfachen Beispiels haben wir gelernt, wie man die Toleranz auf einem Knoten in Kubernetes setzt.