Was ist eine Knotenaffinität in Kubernetes?
Die Knotenaffinität ist ein Scheduler, der den Knoten bestimmten Pods zuweist. Kubernetes -Pods verwenden die Knotenaffinität. Die Fähigkeit einer POD, eine Affinität für eine bestimmte Gruppe von Knoten zu deklarieren, auf die sie möglicherweise platziert werden könnte, wird als Knotenaffinität bezeichnet. In der Knotenaffinität führen wir zwei Arten der Planung durch - weiche und harte Planung. Durch die Knotenaffinität werden wir sicherstellen, dass die verschiedenen Pods, die wir verwenden, auf bestimmten Knoten im Kubernetes -Cluster gehostet werden. In der POD ist jeder Knoten mit einem eindeutigen Wert gekennzeichnet.
Voraussetzungen:
In unserem System müssen das Betriebssystem Linux oder Ubuntu installiert werden. Wenn Windows bereits installiert ist, installieren Sie einen virtuellen Computer und führen Sie die neueste Version von Ubuntu in Ihrem System aus. Kubernetes muss nach der Installation im System installiert werden. Sie müssen mit Kubernetes-Befehlen und dem Kubectl-Befehlszeilenwerkzeug vertraut sein.
Lesen Sie die Voraussetzungen sorgfältig durch. Führen Sie nach Erfüllung dieser Anforderungen die Befehle in der Kubectl -Befehlszeile aus, die in den folgenden Beispielen erwähnt werden. Lassen Sie uns die Tutorials in Schritte unterbrechen, die jeweils eine kurze Erklärung haben.
Schritt 1: Führen Sie die Kubernetes aus
Im ersten Schritt führen wir die Kubernetes im Terminal aus. Der Befehl ist wie folgt:
> Minikube Start
Hier bietet Minikube uns eine lokale Umgebung, in der wir die verschiedenen Operationen bei Clustern ausführen.
Nach dem Ausführen des Befehls startet Minikube und der Knotenraum ist reserviert.
Schritt 2: Rufen Sie den vorhandenen Knoten in Kubernetes ab
In diesem Schritt werden die markierten Knoten angezeigt, die derzeit im System existieren. Um die beschrifteten Knoten zu erhalten, verwenden wir einen bestimmten Befehl.
Führen Sie den folgenden Befehl im System aus und zeigen Sie die Ergebnisse an:
> kubectl Holen Sie Knoten -how -Labels
Im vorherigen Screenshot haben wir gesehen, dass dieser Befehl verschiedene Parameter wie Name, Status, Rollen, Alter, Version und Etiketten zurückgibt. Die Namensparameter sollen den Namen des Containers angezeigt, der Statusparameter besteht darin, den Status des Containers zurückzugeben. Der Parameter der Rollen besteht darin, den Container zu kontrollieren. Der Altersparameter besteht darin Eine Version dieses Pods und der Parameter der Beschriftungen besteht darin, den spezifischen Knotenwert für diesen Pod zurückzugeben.
Schritt 3: Definieren Sie die Kubernetes -Knoten -Affinität
In diesem Schritt definieren wir die Knotenaffinität für den Minikube -Behälter. Die Knotenaffinität hängt vom Etikett ab. Hier weisen wir die Beschriftungen mit dem Befehl zu. Der Befehl zur Definition der Knotenaffinität ist wie folgt:
> Kubectl -Etikettenknoten Minikube DiskType == SSD
Wir befestigen ein Etikett an den Minikube -Knoten, dessen Disc -Typ SSD ist. Wir erhalten die Liste der gekennzeichneten Knoten nach der Knotenkennzeichnung. Dies bedeutet, dass wir die Liste der Knotenaffinität erhalten. Hier führen wir denselben Befehl erneut aus, den wir früher verwendet haben, um die Liste der gekennzeichneten Knoten anzuzeigen.
> Kubectl Get Knoten -how -Labeles
Schritt 4: Definieren Sie die Konfigurationsdatei der Knotenaffinität oder die Knotenaffinität in der YAML -Datei
In diesem Schritt definieren wir die Knotenaffinität in einer YAML -Datei. In einem Minikube -Container führen wir die folgenden Befehle aus, um die YAML -Datei zu erstellen:
> Nano Aff. Yaml
In Linux wird Nano zur Erstellung von Dateien verwendet.
Nach der Befehlsausführung wird der folgende beigefügte Screenshot angezeigt. Dies ist eine Konfigurationsdatei, die Informationen zu Containern und Clustern enthält. Wie im folgenden Screenshot zu sehen ist, wird die Affinität angegeben. In der Knoten -Affinität gibt es uns einen "erforderlichen Wert. Das bedeutet, dass an diesem Pod eine harte Planung durchgeführt wird und die Pod diese Planung um jeden Preis erfordert. In der Hardknoten -Affinität heißt ein erstelltes Schoten, der erstellt wird. Wir definieren diesen Pod -Scheibe -Typ wie auf diesem Knotenscheibentyp geplant, dessen beigefügte Etikett SSD ist. Denken Sie immer daran, dass bei der angegebenen Zeitplanung der Knotenaffinität die harte Planung der Knotenaffinität durchgeführt wird.
Auf diese Weise definieren wir die POD mit verschiedenen Arten von Knotenaffinität.
Schritt 5: Überprüfen Sie, ob der Pod im Etikettknoten geplant ist
In diesem Schritt bestimmen wir, ob ein Pod in einem beschrifteten Knoten geplant ist oder nicht. Zu diesem Zweck führen wir den folgenden Befehl aus:
> kubectl anwenden -f aff.Yaml
Die Pod wird erfolgreich erstellt.
Schritt 6: Geben Sie alle Pods in Kubernetes ein
Danach überprüfen wir die Liste der laufenden oder anstehenden Pods in unseren Kubernetes. Wir führen den folgenden Befehl aus, der im Screenshot angezeigt wird:
.> Kubectl Get Pods -output = breit
In dem zuvor befestigten Screenshot stellen wir fest, dass alle Pods im Laufstatus liegen. Zusammen mit diesem erhalten wir alle Details von Pod durch diesen Befehl.
Schritt 7: Erstellen Sie den Pod, um die Knotenaffinität in Kubernetes zu definieren
In diesem Schritt führen wir den Befehl erneut für die Definition der Knotenaffinität aus. Wir erstellen eine YAML -Datei mit dem „PF.Yaml ”Name. Der Befehl lautet wie folgt:
> Nano PF.Yaml
Schritt 8: Überprüfen Sie den Knoten -Affinitätstyp
In diesem Schritt werden wir sehen, welche Art von Knotenaffinität in dieser YAML -Datei definiert ist. Der Name des Pod ist nginx. Seine Spezifikation ist Affinität, wie im folgenden Screenshot gezeigt. In der Knotenaffinität wird „bevorzugung. Wenn das bevorzugte Wort verwendet wird, bedeutet dies, dass der Knoten -Affinitätstyp weich ist. Die Affinität der weichen Knoten bedeutet, dass der Zeitplan den Knoten bevorzugt und die Beschriftungen mit dem angegebenen Match -Ausdruck übereinstimmen, dies in Ordnung ist. Ansonsten ignorieren und planen Sie den Pod.
Schritt 9: Überprüfen Sie, ob der Pod den Knoten beschriften soll
In diesem Schritt überprüfen wir, ob alle von uns erstellten Schoten mit Etikettenknoten geplant sind. Aus diesem Grund führen wir den folgenden Befehl aus, um die POD als YAML -Datei zu erstellen:
> kubectl anwenden -f pF.Yaml
Die Pod wird erfolgreich erstellt.
Schritt 10: Geben Sie alle Pods in Kubernetes ein
Hier führen wir den Befehl aus, um festzustellen, ob alle Schoten mit beschrifteten Knoten geplant sind. Wir führen den folgenden Befehl im Terminal aus:
> Kubectl Get Pods -output = breit
Der gleiche Vorgang wird für die Affinität der weichen Knoten wiederholt, wie wir zuvor für die Affinität der Hardknoten diskutiert wurden. Alle Knoten befinden sich im Laufstatus, was bedeutet, dass alle Schoten mit Etikettenknoten geplant sind.
Abschluss
Die Knotenaffinität ist ein Scheduler für Pods auf Etikettenknoten. Die Knotenaffinität enthält eine Reihe von Regeln in harter und weicher Form. Das haben wir ausführlich gelernt. Wir gehen davon aus, dass Sie aus diesem Tutorial viel gelernt haben. Sie können es für Ihre Verbesserung üben.