🏷️ Labels = Tags for Kubernetes Resources
How to find all pods for an app? Labels and selectors group resources. Services find pods by labels. Deployments manage pod sets. Essential for organization.
📝 Adding Labels
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
environment: production
tier: backend
version: v1.0.0
team: payments
spec:
containers:
- name: app
image: myapp:latest
🎯 Using Selectors
# Service selecting pods by label
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp
environment: production
ports:
- port: 80
# Deployment managing pods
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
selector:
matchLabels:
app: myapp
tier: backend
template:
metadata:
labels:
app: myapp
tier: backend
# List pods by label
kubectl get pods -l app=myapp
kubectl get pods -l 'environment in (production, staging)'
kubectl get pods -l 'tier!=frontend'
💡 Label Best Practices
- app: Application name
- environment: dev, staging, prod
- tier: frontend, backend, cache, db
- version: v1.0.0, v2.0.0 (deployment tracking)
- team: owning team name
- Keep labels simple and consistent
“Without labels, finding pods was guesswork. Added app and environment labels. kubectl get pods -l app=myapp works perfectly. Labels are essential for any serious deployment.”
