📖 Scenario: You are managing a Kubernetes cluster with multiple pods running different applications. To keep track of these pods easily, you want to use labels. Labels help you organize and select resources based on their characteristics, like app name or environment.
🎯 Goal: Learn how to add labels to Kubernetes pods and use label selectors to find specific pods. This helps you organize your resources clearly and manage them efficiently.
📋 What You'll Learn
Create a pod manifest with labels
Add a label selector variable
Use kubectl command with label selector to list pods
Display the filtered pods using labels
💡 Why This Matters
🌍 Real World
In real Kubernetes clusters, labels help operators quickly find and manage groups of resources like pods, services, or deployments based on their roles or environments.
💼 Career
Understanding labels is essential for Kubernetes administrators and DevOps engineers to organize, monitor, and automate resource management efficiently.
Progress0 / 4 steps
1
Create a pod manifest with labels
Create a file named pod.yaml with a pod definition that includes these exact labels under metadata.labels: app: myapp and env: production. Use nginx as the container image.
Kubernetes
Hint
Labels go under metadata.labels in the pod manifest. They are key-value pairs.
2
Add a label selector variable
Create a bash variable named LABEL_SELECTOR and set it to the string app=myapp to select pods with the label app equal to myapp.
Kubernetes
Hint
Use LABEL_SELECTOR="app=myapp" to create the variable.
3
Use kubectl command with label selector to list pods
Write a command using kubectl get pods with the label selector variable $LABEL_SELECTOR to list pods that have the label app=myapp.
Kubernetes
Hint
Use kubectl get pods -l $LABEL_SELECTOR to filter pods by label.
4
Display the filtered pods using labels
Write a command to print the names of pods filtered by the label selector $LABEL_SELECTOR using kubectl get pods with -o jsonpath to show only pod names.
Kubernetes
Hint
Use kubectl get pods -l $LABEL_SELECTOR -o jsonpath='{.items[*].metadata.name}' to print pod names.
Practice
(1/5)
1. What is the main purpose of labels in Kubernetes?
easy
A. To organize and group resources for easy management
B. To store large amounts of data inside pods
C. To define network policies between nodes
D. To control user access permissions
Solution
Step 1: Understand what labels do
Labels are tags attached to Kubernetes objects to identify and group them.
Step 2: Identify the main use
Labels help select and organize resources, making management easier.
Final Answer:
To organize and group resources for easy management -> Option A
Quick Check:
Labels = Organize resources [OK]
Hint: Labels tag resources to group and manage them easily [OK]
Common Mistakes:
Confusing labels with data storage
Thinking labels control network or permissions
Mixing labels with annotations
2. Which of the following is the correct syntax to add a label env=production to a pod using kubectl?
easy
A. kubectl label pod mypod env=production
B. kubectl add label pod mypod env=production
C. kubectl set label pod mypod env=production
D. kubectl apply label pod mypod env=production
Solution
Step 1: Recall kubectl label command
The correct command to add or update a label is kubectl label.
Step 2: Check syntax correctness
kubectl label pod mypod env=production uses kubectl label pod mypod env=production, which is correct syntax.
Final Answer:
kubectl label pod mypod env=production -> Option A
Quick Check:
Use kubectl label to add labels [OK]
Hint: Use 'kubectl label' to add or change labels [OK]
Common Mistakes:
Using 'kubectl add label' which is invalid
Confusing 'set label' with 'label'
Using 'apply label' which does not exist
3. Given these pods with labels: pod1: app=web, env=prod pod2: app=web, env=dev pod3: app=db, env=prod What pods will be selected by the command kubectl get pods -l app=web,env=prod?
medium
A. pod1 and pod2
B. pod1 only
C. pod2 only
D. pod3 only
Solution
Step 1: Understand label selector syntax
The selector app=web,env=prod means pods must have both labels with these exact values.
Step 2: Match pods with labels
pod1 has app=web and env=prod, pod2 has env=dev, pod3 has app=db.
Final Answer:
pod1 only -> Option B
Quick Check:
Selector matches pod1 only [OK]
Hint: Selector with commas means AND condition [OK]
Common Mistakes:
Assuming comma means OR instead of AND
Ignoring one label in selector
Confusing label keys and values
4. You tried to select pods with kubectl get pods -l app:web but got an error. What is wrong with this command?
medium
A. Labels cannot be used with 'kubectl get pods'
B. The pod name is missing
C. The label selector syntax uses '=' not ':'
D. The command needs '--all-namespaces' flag
Solution
Step 1: Check label selector syntax
Kubernetes label selectors use '=' to assign values, not ':'.
Step 2: Identify error cause
Using ':' causes syntax error, so command fails.
Final Answer:
The label selector syntax uses '=' not ':' -> Option C
Quick Check:
Use '=' in label selectors [OK]
Hint: Label selectors use '=' not ':' [OK]
Common Mistakes:
Using ':' instead of '=' in selectors
Forgetting pod name is not needed with -l
Thinking labels can't filter pods
5. You want to deploy two versions of the same app in Kubernetes: v1 and v2. How can labels help you manage these versions efficiently?
hard
A. Labels automatically update pods to the latest version
B. Use labels to store the entire app code inside pods
C. Labels prevent pods from communicating with each other
D. Assign labels like version=v1 and version=v2 to pods and use selectors to target them
Solution
Step 1: Understand version management with labels
Labels can tag pods with version info like version=v1 or version=v2.
Step 2: Use selectors to manage versions
You can select and manage pods by version using label selectors in commands or deployments.
Final Answer:
Assign labels like version=v1 and version=v2 to pods and use selectors to target them -> Option D
Quick Check:
Labels separate versions for easy management [OK]
Hint: Label versions to select and manage app updates easily [OK]
Common Mistakes:
Thinking labels store app code
Assuming labels auto-update pods
Believing labels block pod communication
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.