Labels are simple key/value pairs attached to any Kubernetes object and used at runtime to query and filter such objects. Labels are heavily used by Kubernetes itself as we’ll see in a moment.
Exercise n.1: list labels and use them in queries
Change directory into the folder
definitionsbefore running these commands.
Start two pods with some labels attached (see their definition files for details):
kubectl apply -f foo-labelled-pod.yaml kubectl apply -f bar-labelled-pod.yaml
You can see the attached labels for each pod by running:
$ kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS bar 1/1 Running 0 48s env=staging foo 1/1 Running 0 53s env=prod
Now let's see how to list only pods having a label
prod as value.
To use a label in order to filter the output of
kubectl get pods, we pass the
kubectl. You can keep the
--show-labels flag to double
check the query is working as expected:
$ kubectl get pods --selector="env=prod" --show-labels NAME READY STATUS RESTARTS AGE LABELS foo 1/1 Running 0 2m19s env=prod
In case you want to see any pod with the label
env, whatever its value:
kubectl get pods --selector="env" --show-labels
Queries can be negated with the
kubectl get pods --selector="\!env" --show-labels No resources found in default namespace.