Was ist verdächtig?
Die Kombination von Schoten, Knoten und Clustern funktioniert zusammen. Pods werden von der Node Affinity -Eigenschaft zu den Knoten angezogen. Toleranz und Verdichtungen arbeiten zusammen, um sicherzustellen, dass kein Pod auf dem falschen Knoten geplant wird. Diese Eigenschaften stellen sicher, dass die Pods auf dem richtigen Knoten geplant sind und auch die Arbeitsbelastung eines Knotens verwalten, indem eine gleiche Arbeitsbelastung auf allen Knoten im Cluster verteilt wird. Für den Knoten werden die Tainten unter Verwendung der Knotenspezifikation definiert, während Pods die Toleranz aus der POD -Spezifikation verwenden.
Mühe sind die Einschränkungen, die es einem Knoten ermöglichen, die auf dem Knoten geplanten Schoten abzuwehren. Auf der anderen Seite wirkt Tolerations gegen die Mühe und ermöglicht es, dass die Schoten auf dem Knoten geplant werden, auch wenn sie Taints definiert haben. Es kann mehr als einen Melde für die Schoten definiert werden, um sicherzustellen, dass die Pods nicht geplant werden, es sei denn. Hier zeigen wir, wie man die Melde auf Kubernetes -Pods mit Hilfe eines einfachen, kurzen und einfachen Beispiels verwendet.
Voraussetzungen
Stellen Sie sicher, dass Sie die folgenden Tools auf Ihrem System installiert haben, bevor Sie diese Anleitung fortsetzen. Mit diesen grundlegenden Tools können Sie keine Verdichtungen auf Kubernetes -Knoten verwenden.
Stellen Sie sicher, dass diese Tools in Ihrem System ordnungsgemäß installiert und konfiguriert sind, damit Sie kein Problem verwenden. Unter der Annahme, dass Sie Ihr System mit all diesen Tools installiert haben, wechseln wir zum nächsten Abschnitt.
So verwenden Sie Taints auf Kubernetes -Knoten?
Hier präsentieren wir ein einfaches Szenario, mit dem Sie lernen können, wie man einen Mächtigen auf einem Kubernetes -Knoten benutzt. Lass uns anfangen!
Schritt 1: Starten Sie den Minikube -Cluster
Starten Sie zunächst den Minikube -Cluster, damit Sie die Kubectl -Befehle verwenden und Ihre Anwendung ausführen können. Mit dem Minikube -Cluster können Sie Ihre Knoten, Pods und sogar Cluster in der Kubernetes -Umgebung bereitstellen. Daher ist es wichtig, den Minikube im aktiven Modus mit dem folgenden Befehl zu halten:
kalsoom@kalsoom-virtualbox> minikube StartDadurch wird der Minikube -Cluster aktiviert und die Kubernetes -Umgebung vorbereit.
Schritt 2: Holen Sie sich die Liste der Knoten
Wie oben diskutiert, basiert die Kubernetes -Umgebung auf Knoten, Pods und Clustern. Die Schoten sind auf den Knoten geplant, und wir müssen den Makel für diesen Knoten definieren, um zu verhindern, dass die Schoten auf diesem Knoten geplant werden. Hier zeigen wir also die Liste der Knoten an, um zu überprüfen. Zusätzlich verwenden wir den folgenden Befehl:
kalsoom@kalsoom-virtualbox> kubectl Get Knoten -o = benutzerdefinierte Spalte = NODEDENAME:.Metadaten.Name, Taintkey:.Spezifikation.Taints [*].Schlüssel, verdichtetes Value:.Spezifikation.Taints [*].Wert, Tainteffect:.Spezifikation.Taints [*].WirkungAus der obigen Ausgabe können wir feststellen.
Schritt 3: Machen Sie den Knoten auf
Der Knoten kann durch die Verwendung des folgenden Befehls verdorben werden:
kalsoom@kalsoom-virtualbox> kubectl taintknoten Minikube App = Frontend: NoScheduleWie Sie in der Ausgabe sehen können, wurde der Knoten 'Minikube' mit dem 'NoSchedule' -Effekt, der den Schlüsselnamen 'App' mit einem 'Frontend' -Wert hat, verdorben. Dies hat die Pods eingeschränkt, die auf dem Knoten geplant werden sollen. Jetzt kann auf diesen Knoten kein Pod gestellt werden, bis eine Toleranz gegen den Mächte definiert wurde.
Schritt 4: Planen Sie die Schoten am Knoten
In diesem Schritt werden wir versuchen, den Pod auf dem Knoten zu planen, den wir im vorherigen Schritt verdorben haben. Wir stellen die Pods auf dem Cluster bereit, der in der App -Bereitstellungsspezifikation keine Toleranz definiert ist. Siehe den unten angegebenen Vorgang:
Schritt Nr. 4A: Erstellen Sie einen Namespace
Verwenden Sie zunächst den angegebenen Befehl hier, um einen Namespace zu erstellen:
kalsoom@kalsoom-virtualbox> kubectl erstellen NS FrontendSchritt Nr. 4B: Führen Sie die Nginx -Datei im Namespace aus
Führen Sie nun die NGINX -Datei im Namespace aus, den wir gerade mit dem folgenden Befehl erstellt haben:
kalsoom@kalsoom -virtualbox> kubectl run nginx -image = nginx -namespace FrontendSchritt Nr. 4C: Überprüfen Sie den Status des Schotens
Überprüfen Sie nun den Status der Schoten, um festzustellen, ob sie auf den Knoten geplant sind oder nicht. Da für den Cluster keine Toleranz definiert ist, sollte der Pod auf keinem Knoten im Cluster geplant werden. Überprüfen Sie den Status der Pods mit dem unten angegebenen Befehl:
kalsoom@kalsoom -virtualbox> kubectl Get Pods -n FrontendDer Status der Pod ist "anhängig", was bedeutet, dass er auf keinem Knoten geplant wurde. Wir können bestätigen, ob es auf jedem Knoten im Cluster geplant ist oder nicht, indem wir die Ereignisse mit dem folgenden Befehl überprüfen:
kalsoom@kalsoom -virtualbox> kubectl Get Events -n FrontendAus der Ausgabe können Sie feststellen, dass kein Knoten für die Pods verfügbar ist, die geplant sind, da für die Knoten keine Toleranz definiert wird.
Abschluss
Wir haben gelernt, wie man die Verdichtungen auf den Kubernetes -Knoten benutzt. Wir untersuchen, was ein Makler ist und welche Funktion es in einer Kubernetes -Umgebung erbringt. Wir haben aus diesem Artikel gelernt, dass Toleranz und Verdichtungen Hand in Hand gehen. Für die Knoten in der Knotenspezifikation werden die Tolerationen definiert, während die Toleranz für die Pods in der POD -Spezifikation definiert ist. Taints beschränken die Pods, die auf dem Knoten geplant werden sollen, während die Toleranz gegen den Taint funktioniert und es den Schoten ermöglicht, auf Knoten geplant zu werden.