Kubernetes Taint-Befehl

KubernetesKubernetesBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab erfahren Sie, wie Sie den Befehl kubectl taint verwenden. Dies ist ein leistungsstarkes Tool in Kubernetes, um Taints (Abwehrzeichen) auf Knoten hinzuzufügen, zu ändern und zu entfernen. Taints werden verwendet, um anzuzeigen, dass ein Knoten bestimmte Einschränkungen oder Anforderungen hat. Dadurch kann die Planung von Pods in einem Kubernetes-Cluster gesteuert werden.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 100% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Starten des Minikube-Clusters

Bevor Sie Ressourcen erstellen, benötigen Sie einen laufenden Kubernetes-Cluster. Minikube ist eine leichte Kubernetes-Umgebung, die auf Ihrem lokalen Rechner läuft.

  1. Navigieren Sie in Ihr Arbeitsverzeichnis:

    Öffnen Sie das Terminal und navigieren Sie in den Standard-Projektordner:

    cd /home/labex/project
  2. Starten Sie Minikube:

    Starten Sie Minikube, um einen Kubernetes-Cluster zu initialisieren:

    minikube start
    • Dieser Befehl richtet einen Ein-Knoten-Kubernetes-Cluster auf Ihrem lokalen Rechner ein.
    • Je nach Leistung Ihres Systems kann es einige Minuten dauern, bis Minikube gestartet ist.
  3. Überprüfen Sie, ob Minikube läuft:

    Überprüfen Sie den Status des Minikube-Clusters:

    minikube status
    • Suchen Sie nach Komponenten wie kubelet und apiserver, die als Running (Läuft) aufgeführt sind.
    • Wenn der Cluster nicht läuft, führen Sie minikube start erneut aus.

Wenn Sie Probleme beim Starten von Minikube haben, können Sie minikube delete verwenden, um die Umgebung bei Bedarf zurückzusetzen.

Entdecken des kubectl taint-Befehls

Der kubectl taint-Befehl wird verwendet, um Taints (Abwehrzeichen) auf Kubernetes-Knoten hinzuzufügen, zu ändern oder zu entfernen. Taints sind Schlüssel-Wert-Paare mit Auswirkungen, die die Pod-Planung beeinflussen, indem sie einschränken, welche Pods auf bestimmten Knoten platziert werden können.

Führen Sie den folgenden Befehl aus, um die verfügbaren Optionen für kubectl taint anzuzeigen:

kubectl taint -h

Sie werden die folgende Ausgabe sehen:

Aktualisiert die Taints auf einem oder mehreren Knoten.

  *  Ein Taint besteht aus einem Schlüssel, einem Wert und einer Auswirkung. Als Argument wird es hier als key=value:effect ausgedrückt.
  *  Der Schlüssel muss mit einem Buchstaben oder einer Zahl beginnen und kann bis zu 253 Zeichen lang sein, darunter Buchstaben, Zahlen, Bindestriche, Punkte und Unterstriche.
  *  Optional kann der Schlüssel mit einem DNS-Subdomänen-Präfix und einem einzelnen '/' beginnen, wie z.B. example.com/my-app.
  *  Der Wert ist optional. Wenn er angegeben wird, muss er mit einem Buchstaben oder einer Zahl beginnen und kann bis zu 63 Zeichen lang sein, darunter Buchstaben, Zahlen, Bindestriche, Punkte und Unterstriche.
  *  Die Auswirkung muss NoSchedule, PreferNoSchedule oder NoExecute sein.
  *  Derzeit kann ein Taint nur auf Knoten angewendet werden.

Beispiele:
  ## Aktualisiert den Knoten 'foo' mit einem Taint mit dem Schlüssel 'dedicated' und dem Wert 'special-user' und der Auswirkung 'NoSchedule'
  ## Wenn ein Taint mit diesem Schlüssel und dieser Auswirkung bereits existiert, wird sein Wert wie angegeben ersetzt
  kubectl taint nodes foo dedicated=special-user:NoSchedule

  ## Entfernt vom Knoten 'foo' den Taint mit dem Schlüssel 'dedicated' und der Auswirkung 'NoSchedule', falls einer existiert
  kubectl taint nodes foo dedicated:NoSchedule-

  ## Entfernt vom Knoten 'foo' alle Taints mit dem Schlüssel 'dedicated'
  kubectl taint nodes foo dedicated-

  ## Fügt auf Knoten mit der Bezeichnung mylabel=X einen Taint mit dem Schlüssel 'dedicated' hinzu
  kubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule

  ## Fügt dem Knoten 'foo' einen Taint mit dem Schlüssel 'bar' und keinem Wert hinzu
  kubectl taint nodes foo bar:NoSchedule

Hinzufügen eines Taints zu einem Knoten

In diesem Schritt erfahren Sie, wie Sie mit dem kubectl taint-Befehl einen Taint (Abwehrzeichen) zu einem Knoten hinzufügen. Taints werden verwendet, um einen Knoten mit bestimmten Einschränkungen oder Anforderungen zu markieren, was die Planung von Pods auf diesem Knoten beeinflussen kann.

Um einen Taint zu einem Knoten hinzuzufügen, können Sie den folgenden Befehl verwenden:

kubectl taint nodes minikube app=prod:NoSchedule

Dies fügt einen Taint mit dem Schlüssel app und dem Wert prod zu einem Knoten namens minikube hinzu, mit der Auswirkung NoSchedule. Dadurch wird verhindert, dass Pods auf dem Knoten geplant werden, es sei denn, sie tolerieren den Taint.

Anschließend können Sie die Taints, die derzeit auf Knoten in Ihrem Kubernetes-Cluster angewendet sind, mit dem kubectl describe node-Befehl anzeigen.

Um die Taints auf einem Knoten anzuzeigen, können Sie den folgenden Befehl verwenden:

kubectl describe node minikube

Die auf den Knoten angewendeten Taints werden im Abschnitt "Taints" der Ausgabe aufgelistet. Sie können diese Informationen nutzen, um zu überprüfen, ob der Taint, den Sie im vorherigen Schritt hinzugefügt haben, auf den Knoten angewendet wurde.

Entfernen eines Taints von einem Knoten

In diesem Schritt erfahren Sie, wie Sie mit dem kubectl taint-Befehl einen Taint (Abwehrzeichen) von einem Knoten entfernen. Dies kann nützlich sein, wenn Sie die Einschränkungen oder Anforderungen eines Knotens aktualisieren müssen oder wenn Sie Pods auf einem zuvor mit einem Taint markierten Knoten planen lassen möchten.

Um einen Taint von einem Knoten zu entfernen, können Sie den folgenden Befehl verwenden:

kubectl taint nodes minikube app-

Dieser Befehl entfernt den Taint app=prod:NoSchedule vom minikube-Knoten. Dadurch können Pods auf dem Knoten geplant werden, ohne dass sie den zuvor angewendeten Taint tolerieren müssen.

Ändern eines Taints auf einem Knoten

In diesem Schritt erfahren Sie, wie Sie mit dem kubectl taint-Befehl einen Taint (Abwehrzeichen) auf einem Knoten ändern. Dies kann nützlich sein, wenn Sie die Einschränkungen oder Anforderungen eines Knotens aktualisieren müssen, aber den bestehenden Taint-Schlüssel und die Auswirkung beibehalten möchten.

  1. Fügen Sie einen neuen Taint mit folgendem Inhalt hinzu:
kubectl taint nodes minikube app=uat:NoSchedule
  1. Verwenden Sie die Option overwrite, um die Aktualisierung zu erzwingen:
kubectl taint nodes minikube app=dev:NoSchedule --overwrite=true

Dieser Befehl aktualisiert den Wert des app-Taints auf dem minikube-Knoten von prod auf dev. Dadurch wird der Taint auf dem Knoten aktualisiert, während der gleiche Taint-Schlüssel und die gleiche Auswirkung beibehalten werden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den kubectl taint-Befehl in Kubernetes verwenden. Sie haben begonnen, indem Sie mit dem kubectl taint-Befehl einen Taint (Abwehrzeichen) mit einem bestimmten Schlüssel, Wert und Effekt zu einem Knoten hinzugefügt haben. Anschließend haben Sie gelernt, wie Sie die auf einen Knoten angewendeten Taints mit dem kubectl describe node-Befehl anzeigen können.