Label for 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 pod 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 pod 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
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.