Grundlagen zu Kubernetes-Node-Selectors (Kubernetes-Knotenauswahlkriterien)
Kubernetes-Node-Selectors sind eine leistungsstarke Funktion, die es Ihnen ermöglicht, die Platzierung Ihrer Pods auf bestimmten Knoten innerhalb Ihres Clusters zu steuern. Durch die Verwendung von Knotenlabels und -auswahlkriterien können Sie sicherstellen, dass Ihre Pods auf Knoten geplant werden, die bestimmte Kriterien erfüllen, wie z. B. Hardware-Spezifikationen, Software-Versionen oder andere benutzerdefinierte Attribute.
In diesem Abschnitt werden wir die grundlegenden Konzepte von Kubernetes-Node-Selectors, ihre Anwendungsfälle untersuchen und Codebeispiele geben, um ihre Verwendung zu demonstrieren.
Was sind Kubernetes-Node-Selectors?
Kubernetes-Node-Selectors sind eine Möglichkeit, den Knoten anzugeben, auf dem ein Pod geplant werden soll. Dies wird erreicht, indem Labels auf Knoten angewendet werden und dann diese Labels in der Pod-Spezifikation verwendet werden, um die gewünschten Knoten auszuwählen.
Knoten in einem Kubernetes-Cluster können mit Schlüssel-Wert-Paaren gekennzeichnet werden, die verschiedene Attribute des Knotens darstellen können, wie z. B.:
- Hardware-Spezifikationen (z. B.
hardware=highperformance
, cpu=8
, memory=16Gi
)
- Software-Versionen (z. B.
os=ubuntu2204
, kubernetes-version=1.21.0
)
- Standorte (z. B.
region=us-east1
, zone=a
)
- Benutzerdefinierte Attribute (z. B.
app=frontend
, environment=production
)
Sobald die Knoten mit Labels versehen sind, können Sie das Feld nodeSelector
in der Pod-Spezifikation verwenden, um die gewünschten Knoten für die Pod-Platzierung auszuwählen.
Anwenden von Node-Selectors auf Pods
Um einen Node-Selector auf einen Pod anzuwenden, müssen Sie das Feld nodeSelector
zur Pod-Spezifikation hinzufügen. Das Feld nodeSelector
ist eine Zuordnung von Schlüssel-Wert-Paaren, die mit den Labels auf dem Knoten übereinstimmen müssen.
Hier ist ein Beispiel für eine Pod-Spezifikation mit einem Node-Selector:
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: my-app
image: my-app:v1
nodeSelector:
hardware: highperformance
os: ubuntu2204
In diesem Beispiel wird der Pod auf einem Knoten geplant, der die Labels hardware=highperformance
und os=ubuntu2204
hat.
Überprüfen von Node-Selectors
Um zu überprüfen, ob ein Pod auf dem richtigen Knoten geplant wurde, können Sie den Befehl kubectl get pods
verwenden und nach der Spalte NODE
suchen, die den Namen des Knotens anzeigt, auf dem der Pod ausgeführt wird.
Sie können auch den Befehl kubectl describe pod <pod-name>
verwenden, um die Details des Pods anzuzeigen, einschließlich des Knotens, auf dem er ausgeführt wird, und der Knotenlabels, die mit dem Node-Selector des Pods übereinstimmen.
Indem Sie Kubernetes-Node-Selectors verstehen und verwenden, können Sie sicherstellen, dass Ihre Pods auf den am besten geeigneten Knoten innerhalb Ihres Clusters platziert werden, wodurch die Ressourcennutzung und die Anwendungsleistung optimiert werden.