Kubernetes · 3 min read · Dec 08, 2025
Labels und Selektoren in Kubernetes

Labels sind nichts anderes als Schlüssel-Wert-Paare, die Kubernetes-Objekten wie Pods, Services usw. zugewiesen werden. Labels können verwendet werden, um Kubernetes-Objekte zu organisieren und auszuwählen. Labels können Objekten zum Zeitpunkt der Erstellung angehängt und jederzeit geändert werden. Wir können mehreren Labels zu Kubernetes-Objekten hinzufügen.
Selektoren werden von den Benutzern verwendet, um eine Menge von Objekten auszuwählen. Der Label-Selektor ist das zentrale Gruppierungsprimitive in Kubernetes. Die Kubernetes-API unterstützt zwei Arten von Selektoren:
- Gleichheitsbasierte Selektoren:
Dies ermöglicht das Filtern nach Schlüssel und Wert, wobei übereinstimmende Objekte alle angegebenen Labels erfüllen müssen. - Mengenbasierte Selektoren:
Dies ermöglicht das Filtern von Schlüsseln gemäß einer Menge von Werten.
Um mehr über Labels und Selektoren zu erfahren, klicken Sie hier.
In diesem Artikel werden wir einen Pod mit Labels erstellen und die Anfragen über den Service mithilfe des Selektors an ihn weiterleiten. Wir werden auch die Befehle zum Abrufen und Löschen von Pods und Services mithilfe von Label/Selektoren in der Befehlszeile ausführen.
Voraussetzungen
- Kubernetes-Cluster mit mindestens 1 Worker-Knoten.
Wenn Sie lernen möchten, wie man ein Kubernetes-Cluster erstellt, klicken Sie hier. Dieser Leitfaden hilft Ihnen, ein Kubernetes-Cluster mit 1 Master und 2 Knoten auf AWS Ubuntu 18.04 EC2-Instanzen zu erstellen.
Was wir tun werden
- Erstellen eines Pods und eines Services mit Labels und Selektor
- Labels verstehen
Erstellen eines Pods und eines Services mit Labels und Selektoren
Um einen Pod mit Labels zu erstellen, erstellen Sie eine neue Datei und fügen Sie den folgenden Inhalt hinzu.
vim my-lable-demo-pod.ymlapiVersion: v1
kind: Pod
metadata:
name: label-demo-pod
labels:
environment: test
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Um einen Service mit einem Selektor zu erstellen, erstellen Sie eine Datei mit der folgenden Service-Definition, die den Standard-Namespace verwendet.
vim my-selector-demo-service.ymlapiVersion: v1
kind: Service
metadata:
name: selector-demo-service
namespace: default
labels:
environment: test
app: nginx
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: NodePort
Um einen Pod zu erstellen, führen Sie den folgenden Befehl aus.
kubectl create -f my-lable-demo-pod.ymlkubectl get pods
Um einen Service zu erstellen, führen Sie den folgenden Befehl aus.
kubectl create -f my-selector-demo-service.ymlkubectl get service
Um zu überprüfen, ob der Label-Selektor funktioniert, versuchen Sie, auf den Service unter NodeIP:NodePort zuzugreifen.
Hier ist die IP meines Knotens 106.210.138.189 und der Service wird auf Port=30385 bereitgestellt.
Da wir in der Lage sind, auf den Nginx-Pod über den von uns erstellten Service zuzugreifen, bedeutet dies, dass das Label und der Selektor funktioniert haben.
Labels verstehen
Jetzt können wir verschiedene Operationen auf dem Pod und dem Service, die wir mit dem Label erstellt haben, durchführen.
Um Pods zu erhalten, die einem Label unserer Wahl entsprechen, können wir “–selector” im Befehl wie folgt verwenden.
kubectl get pods --selector environment=testkubectl get pods --selector app=nginx
Wir können auch “-l” anstelle von “–selector” verwenden, um die Pods zu erhalten, die dem Label unserer Wahl entsprechen.
kubectl get pods -l environment=testkubectl get pods -l environment=prod
Wir können sogar die Pod-Löschoperation durchführen, indem wir das Label angeben. Pods, die dem Label entsprechen, können mit den folgenden Befehlen gelöscht werden.
kubectl get podskubectl delete pods -l environment=testkubectl get pods
So wie wir Pods löschen konnten, die den Labels entsprechen, können wir auch den Service löschen.
Um den Service zu löschen, der einem Label entspricht, verwenden Sie den folgenden Befehl. Wenn kein Service vorhanden ist, der dem angegebenen Label im Befehl entspricht, wird keine Löschoperation durchgeführt.
kubectl get servicekubectl delete service -l environemt=testkubectl delete service -l environment=testkubectl get service
Fazit
In diesem Artikel haben wir einen Pod mit Labels erstellt und einen Service erstellt und auf diese Pods, die dem Label entsprechen, verwiesen. Wir haben auch gesehen, wie Pods und Services, die den Labels entsprechen, gelöscht werden können.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.