A label is a key-value pair attached to Kubernetes objects like pods. It helps identify and organize resources for selection and routing.
Click to reveal answer
beginner
How do labels help with service routing in Kubernetes?
Labels allow services to select and route traffic only to pods with matching labels, enabling targeted communication between components.
Click to reveal answer
beginner
What is a selector in a Kubernetes Service?
A selector is a query that matches pods with specific labels. The service routes traffic to all pods matching this selector.
Click to reveal answer
beginner
Example: How to label a pod with app=frontend?
In the pod YAML, under metadata, add: labels: app: frontend
Click to reveal answer
beginner
How does a Kubernetes Service use labels to route traffic?
The service uses a selector to find pods with matching labels and sends network requests only to those pods.
Click to reveal answer
What does a Kubernetes Service selector do?
ACreates new pods automatically
BDeletes pods without labels
CMatches pods with specific labels to route traffic
DChanges pod labels dynamically
✗ Incorrect
A selector matches pods with labels so the service knows where to send traffic.
Which of these is a valid label format?
Aapp/frontend
Bapp frontend
Capp=frontend
Dapp:frontend
✗ Incorrect
Labels use key:value format in YAML, like app: frontend.
If a service selector is 'app=backend', which pods receive traffic?
AAll pods in the cluster
BPods labeled with app=backend
CPods without labels
DPods labeled with app=frontend
✗ Incorrect
Only pods with the label app=backend get traffic from that service.
Can a pod have multiple labels?
AYes, pods can have many labels
BNo, only one label is allowed
COnly if the pod is running
DOnly for system pods
✗ Incorrect
Pods can have many labels to describe different attributes.
What happens if no pods match a service selector?
AThe service has no endpoints and traffic fails
BThe service routes traffic to all pods
CThe service creates new pods automatically
DThe service ignores the selector
✗ Incorrect
If no pods match, the service has no endpoints and cannot route traffic.
Explain how labels and selectors work together to route traffic in Kubernetes services.
Think about how a service finds the right pods to send requests.
You got /4 concepts.
Describe how you would label a pod and create a service to route traffic to it.
Consider the YAML structure for both pod and service.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of using labels in Kubernetes service routing?
easy
A. To connect services to the correct pods
B. To store pod logs
C. To define pod resource limits
D. To schedule pods on specific nodes
Solution
Step 1: Understand labels role
Labels are key-value pairs attached to pods to identify them.
Step 2: Connect services using selectors
Services use selectors to find pods with matching labels for routing traffic.
Final Answer:
To connect services to the correct pods -> Option A
Quick Check:
Labels link services and pods = D [OK]
Hint: Labels identify pods for services to route traffic [OK]
Common Mistakes:
Confusing labels with resource limits
Thinking labels store logs
Assuming labels control pod scheduling
2. Which of the following is the correct syntax to select pods with label app=frontend in a Service YAML?
easy
A. selector:
app: frontend
B. selector:
app = frontend
C. selector:
app: 'frontend'
version: 'v1'
D. selector:
- app: frontend
Solution
Step 1: Check YAML selector syntax
Selectors use key: value pairs without '=' sign or list format.
Step 2: Validate options
selector:
app: frontend uses correct key: value syntax. selector:
app = frontend uses '=' which is invalid. selector:
app: 'frontend'
version: 'v1' adds extra label, which is valid but not asked. selector:
- app: frontend uses list format which is invalid for selector.
Final Answer:
selector:
app: frontend -> Option A
Quick Check:
Selector uses key: value, no '=' or list [OK]
Hint: Use key: value pairs for selectors, no '=' or lists [OK]
Common Mistakes:
Using '=' instead of ':' in YAML
Writing selectors as lists
Adding extra labels not requested
3. Given this Service YAML snippet:
selector:
app: backend
tier: api
Which pods will this Service route traffic to?
medium
A. Pods labeled only with app=backend
B. Pods labeled with either app=backend or tier=api
C. Pods labeled with both app=backend and tier=api
D. Pods labeled only with tier=api
Solution
Step 1: Understand selector matching
Selectors match pods that have all specified labels (AND logic).
Step 2: Apply to given labels
Pods must have both app=backend and tier=api labels to be selected.
Final Answer:
Pods labeled with both app=backend and tier=api -> Option C
Quick Check:
Selector matches all labels (AND) = A [OK]
Hint: Selectors match pods with all labels, not just one [OK]
Common Mistakes:
Assuming selector matches any label (OR logic)
Ignoring one of the labels in selector
Confusing selector with pod annotations
4. You created a Service with selector:
selector:
app: web
env: prod
But traffic is not reaching pods. What is the most likely cause?
medium
A. Pods are not running on the same node
B. Service type is not LoadBalancer
C. Service port is missing
D. Pods do not have both labels app=web and env=prod
Solution
Step 1: Check label matching
Service routes only to pods matching all selector labels.
Step 2: Identify common mismatch
If pods lack either label, service finds no endpoints, so no traffic flows.
Final Answer:
Pods do not have both labels app=web and env=prod -> Option D
Quick Check:
Missing labels cause no pod selection = C [OK]
Hint: Verify pods have all selector labels to receive traffic [OK]
Common Mistakes:
Blaming service type instead of labels
Assuming node location affects routing
Ignoring missing service port errors
5. You want to update your app without downtime. You have pods labeled app=frontend, version=v1. You deploy new pods with app=frontend, version=v2. How should you configure the Service selector to route traffic to both versions during rollout?
hard
A. Use selector: version=v2 only
B. Use selector: app=frontend only
C. Use selector: app=frontend and version=v2
D. Use selector: app=frontend and version=v1
Solution
Step 1: Understand rolling update strategy
To route traffic to both old and new pods, selector must match both versions.
Step 2: Choose selector that matches both versions
Selector with only app=frontend matches all pods regardless of version label.
Step 3: Avoid version-specific selectors
Selectors with version=v1 or version=v2 exclude the other version, causing downtime.
Final Answer:
Use selector: app=frontend only -> Option B
Quick Check:
Selector matches all versions for smooth rollout = B [OK]
Hint: Use broad selector to include all versions during rollout [OK]
Common Mistakes:
Selecting only new version pods causing downtime
Selecting only old version pods ignoring new pods
Using multiple selectors that exclude pods
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.