Labels: Managing Pods
Why We Need Labels
As resources increase, managing resources becomes essential. Labels allow you to easily and efficiently manage almost all the resources in Kubernetes.
A label is a key-value pair. It can be set either during or after resource creation. You can easily modify it when needed at any time.
The following figures show how labels work. Assume that you have multiple pods of various kinds. It could be challenging when you manage them.
After we add labels to them. It is much clearer.
Adding a Label
The following example shows how to add labels when you are creating a pod.
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels: # Add labels app=nginx and env=prod to the pod.
app: nginx
env: prod
spec:
containers:
- image: nginx:alpine
name: container-0
resources:
limits:
cpu: 100m
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
imagePullSecrets:
- name: default-secret
After you add labels to a pod, you can view the labels by adding --show-labels when querying the pod.
$ kubectl get pod --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx 1/1 Running 0 50s app=nginx,env=prod
You can also use -L to query only certain labels.
$ kubectl get pod -L app,env NAME READY STATUS RESTARTS AGE APP ENV nginx 1/1 Running 0 1m nginx prod
For an existing pod, you can run the kubectl label command to add labels.
$ kubectl label po nginx creation_method=manual pod/nginx labeled $ kubectl get pod --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx 1/1 Running 0 50s app=nginx, creation_method=manual,env=prod
Modifying a Label
Add --overwrite to the command to modify a label.
$ kubectl label po nginx env=debug --overwrite pod/nginx labeled $ kubectl get pod --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx 1/1 Running 0 50s app=nginx,creation_method=manual,env=debug
Last Article: Liveness Probes
Next Article: Namespaces: Grouping Resources
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.