Einführung
In diesem Lab lernen Sie, wie Sie kubectl verwenden, um die Knoten (Nodes) in Ihrem Kubernetes-Cluster zu untersuchen. Sie beginnen mit grundlegenden Informationen zu den Knoten und arbeiten sich dann zu fortgeschritteneren Themen wie Taints und Tolerations vor. Dieses Lab setzt voraus, dass Sie bereits einen Kubernetes-Cluster eingerichtet haben und kubectl installiert ist.
Den Minikube-Cluster starten
Bevor Sie Ressourcen erstellen, benötigen Sie einen laufenden Kubernetes-Cluster. Minikube ist eine leichte Kubernetes-Umgebung, die auf Ihrem lokalen Rechner läuft.
Navigieren Sie in Ihr Arbeitsverzeichnis:
Öffnen Sie das Terminal und navigieren Sie in den Standard-Projektordner:
cd /home/labex/projectStarten 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.
- Minikube kann je nach Leistung Ihres Systems einige Minuten dauern, um zu starten.
Überprüfen Sie, ob Minikube läuft:
Überprüfen Sie den Status des Minikube-Clusters:
minikube status- Suchen Sie nach Komponenten wie
kubeletundapiserver, die alsRunningaufgeführt sind. - Wenn der Cluster nicht läuft, führen Sie
minikube starterneut aus.
- Suchen Sie nach Komponenten wie
Wenn Sie Probleme beim Starten von Minikube haben, können Sie minikube delete verwenden, um die Umgebung bei Bedarf zurückzusetzen.
Grundlegende Knoteninformationen
Das erste, was Sie tun werden, ist es, grundlegende Informationen über die Knoten (Nodes) in Ihrem Cluster zu erhalten.
Um eine Liste der Knoten in Ihrem Cluster anzuzeigen, führen Sie den folgenden Befehl aus:
kubectl get nodesDies zeigt eine Liste aller Knoten in Ihrem Cluster zusammen mit ihrem Status an.
Um detailliertere Informationen über einen bestimmten Knoten zu erhalten, führen Sie den folgenden Befehl aus:
kubectl describe node minikubeErsetzen Sie
minikubedurch den Namen des Knotens, den Sie untersuchen möchten. Dies gibt Ihnen detaillierte Informationen über den Status, die Kapazität und die Nutzung des Knotens.
Labels und Anmerkungen (Annotations)
Labels (Bezeichnungen) und Annotations (Anmerkungen) können verwendet werden, um Metadaten zu den Knoten (Nodes) in Ihrem Cluster hinzuzufügen. Diese Metadaten können genutzt werden, um Knoten für bestimmte Aufgaben auszuwählen oder Knoten basierend auf bestimmten Kriterien zu filtern.
Um die Labels und Annotations für einen bestimmten Knoten anzuzeigen, führen Sie den folgenden Befehl aus:
kubectl get node minikube --show-labels=trueDies zeigt die Labels und Annotations für den angegebenen Knoten an.
Um ein Label zu einem Knoten hinzuzufügen, führen Sie den folgenden Befehl aus:
kubectl label node minikube org=labexUm eine Annotation zu einem Knoten hinzuzufügen, führen Sie den folgenden Befehl aus:
kubectl annotate node minikube environment=productionVerwenden Sie den folgenden Befehl, um die Labels auf dem Knoten zu überprüfen:
kubectl get nodes --show-labelsDies gibt eine Liste aller Knoten im Cluster zusammen mit ihren Labels aus. Knoten können mit Labels versehen werden, um ihren Zweck oder ihre Eigenschaften zu identifizieren.
Taints und Tolerations
Taints (Abzeichen) und Tolerations (Toleranzen) können verwendet werden, um zu steuern, welche Pods auf welchen Knoten (Nodes) in Ihrem Cluster geplant (scheduled) werden können. Ein Taint ist ein spezielles Label, das einen Knoten als ungeeignet für bestimmte Pod-Typen markiert, und eine Toleration ist eine Einstellung, die es einem Pod ermöglicht, auf einem Knoten mit einem passenden Taint geplant zu werden.
Um die Taints für einen bestimmten Knoten anzuzeigen, führen Sie den folgenden Befehl aus:
kubectl describe node minikube | grep TaintsDies zeigt die Taints für den angegebenen Knoten an.
Um einen Taint zu einem Knoten hinzuzufügen, führen Sie den folgenden Befehl aus:
kubectl taint node minikube app=backend:NoScheduleUm eine Toleration für einen Pod zu erstellen, führen Sie den folgenden Befehl aus:
cat << EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx tolerations: - key: app operator: Exists effect: NoSchedule EOFDieser Pod verwendet
appals Namen des Taints undNoScheduleals die Auswirkung, die der Taint haben soll.
Anzeigen der Knotenkapazität und Ressourcenauslastung
Um die verfügbaren Ressourcen auf einem Knoten anzuzeigen, verwenden Sie den folgenden Befehl:
kubectl describe node minikube | grep -A 8 "Allocated resources"
Ersetzen Sie minikube durch den Namen des Knotens, den Sie untersuchen möchten.
Dies liefert detaillierte Informationen über den Knoten, einschließlich seiner Kapazität und der aktuellen Ressourcenauslastung.
Anzeigen von Knotenereignissen
In Kubernetes können Sie den folgenden Befehl verwenden, um alle Ereignisse (Events) zu filtern, die sich auf einen bestimmten Knoten (Node) beziehen:
kubectl get events --field-selector involvedObject.kind=Node,involvedObject.name=minikube
Ersetzen Sie minikube durch den Namen des Knotens, nach dem Sie suchen möchten. Dieser Befehl listet alle Ereignisse auf, die sich auf diesen Knoten beziehen, wie beispielsweise Neustarts, Upgrades usw.
Knoten sperren (Cordon) und entsperren (Uncordon)
In einigen Fällen müssen Sie möglicherweise einen Knoten (Node) für Wartungsarbeiten oder andere Gründe aus dem Rotationsbetrieb nehmen. Kubernetes bietet die Möglichkeit, einen Knoten als nicht planbar (unschedulable) zu markieren, sodass keine neuen Pods auf ihm geplant werden. Dies wird "Cordon" genannt.
Um einen Knoten zu sperren, verwenden Sie den folgenden Befehl:
kubectl cordon minikube
Ersetzen Sie minikube durch den Namen des Knotens, den Sie sperren möchten.
Verwenden Sie dann den folgenden Befehl, um den Status des Knotens zu überprüfen:
kubectl get node
Um einen Knoten zu entsperren und neue Pods auf ihm planen zu lassen, verwenden Sie den folgenden Befehl:
kubectl uncordon minikube
Ersetzen Sie minikube durch den Namen des Knotens, den Sie entsperren möchten.
Beachten Sie, dass das Sperren eines Knotens nicht automatisch alle vorhandenen Pods vom Knoten entfernt. Sie sollten die Pods manuell löschen oder verschieben, bevor Sie den Knoten sperren, um Unterbrechungen zu vermeiden.
Herzlichen Glückwunsch, Sie haben gelernt, wie Sie einen Knoten in Kubernetes sperren und entsperren können.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie Knoten (Nodes) in einem Kubernetes-Cluster mit kubectl untersuchen können. Sie haben gelernt, wie Sie Knoten auflisten, ihren Status überprüfen, ihre Labels anzeigen und ihre Kapazität sowie Ressourcenauslastung untersuchen können. Sie haben auch gelernt, wie Sie Knoten für Wartungsarbeiten und Upgrades leeren (drain) und entsperren (uncordon) können.


