Kubernetes Labels Explained: Grouping and Managing Resources
What are Labels in Kubernetes?
👉 Labels are key = value pairs attached to Kubernetes objects (Pods, Nodes, Deployments, etc.).
Used for:
- Grouping resources
- Filtering objects
- Connecting services to pods
- Scheduling workloads
Example:
app=frontendenv=prodtier=backend
Example (YAML with labels)
apiVersion: v1kind: Podmetadata: name: myapp-pod labels: app: nginx env: dev tier: frontendspec: containers: - name: nginx image: nginx``
First , create a pod with labels
kubectl apply -f createpods.yaml
1. Show labels
kubectl get pods --show-labels
2. Add label to resource
kubectl label pod myapp-pod app=nginx
3. Select query to labels and selectors
kubectl get pods --selector env=dev -- return all pods having env=dev set in labels during creationkubectl get pods --selector env=qa -- return all pods having env=qa set in labes during creatingAnother methodkubectl get pods -l env=devkubeclt get pods -l env=qa --show-labels
4. Sector for multiple labels and adding show-labels to see labels
--output include only pod which has label env value as prod, testkubeclt get pods -l 'env=prod,env=test' --show-labels --output include only pod which has label env value as prod, testkubectl get pods -l 'env in (prod,test)' --output not include prod, test value in env podskubectl get pods -l 'env notin (prod,test)'
5. Output a particular label in column format
kubectl get pods -L env
6. Update label (overwrite)
kubectl label pod myapp-pod env=prod --overwritekubectl get pod myapp-pod --show-labels
7. Multiple filters
kubectl get pods -l app=nginx,env=dev
8. Removing an existing label
Note minus sign means to remove label
kubectl get pods myapp-pod env-
9. Delete all pod on bases of condition matching label
-- Delete all pod with test label as value in envkubectl delete pod -l env=testkubectl get pods --show-labels