A label selector is a way to filter Kubernetes objects based on their labels. It helps you find and manage groups of resources by matching key-value pairs.
Click to reveal answer
beginner
Explain equality-based label selectors.
Equality-based selectors match resources where a label key equals or does not equal a specific value. For example, environment=production selects resources with label environment set to production.
Click to reveal answer
intermediate
What are set-based label selectors?
Set-based selectors allow filtering resources based on whether a label's value is in or not in a set of values. For example, environment in (production, staging) selects resources labeled with environment as production or staging.
Click to reveal answer
beginner
How do you express 'not equal' in equality-based selectors?
Use the != operator. For example, tier!=frontend selects resources where the tier label is anything except frontend.
Click to reveal answer
intermediate
Give an example of a set-based selector that excludes certain values.
You can use notin to exclude values. For example, environment notin (dev, test) selects resources whose environment label is neither dev nor test.
Click to reveal answer
Which operator is used for equality-based label selectors to match exact values?
A=
Bin
Cnotin
Dexists
✗ Incorrect
The '=' operator is used in equality-based selectors to match labels with exact values.
What does the selector app in (frontend, backend) do?
ASelects resources with app label equal to frontend or backend
BSelects resources without app label
CSelects resources with app label not equal to frontend or backend
DSelects resources with app label exactly 'frontend, backend'
✗ Incorrect
The 'in' operator selects resources whose app label matches any value in the set (frontend or backend).
How do you select resources where a label key exists regardless of its value?
Akey in ()
Bkey = *
Ckey exists
Dkey
✗ Incorrect
Simply specifying the label key without a value selects resources where that key exists.
Which selector excludes resources with label tier set to 'frontend'?
Atier in (frontend)
Btier=frontend
Ctier!=frontend
Dtier notin (frontend)
✗ Incorrect
'tier!=frontend' selects resources where tier label is anything except frontend.
What is the correct syntax to select resources with environment label not in dev or test?
Aenvironment notin dev test
Benvironment notin (dev, test)
Cenvironment not (dev, test)
Denvironment != (dev, test)
✗ Incorrect
The 'notin' operator with parentheses and comma-separated values excludes those label values.
Describe the difference between equality-based and set-based label selectors in Kubernetes.
Think about matching one value versus matching a group of values.
You got /3 concepts.
How would you write a label selector to find all pods with label 'app' set to either 'web' or 'api' but not 'test'?
Use 'app in (web, api)' and 'app notin (test)'
You got /3 concepts.
Practice
(1/5)
1. What does a Kubernetes label selector with environment=production do?
easy
A. Selects resources with the label key 'environment' and value 'production'.
B. Selects resources with any label key named 'production'.
C. Selects resources without the label 'environment'.
D. Selects all resources regardless of labels.
Solution
Step 1: Understand equality selector syntax
The selector environment=production means the key must be 'environment' and the value must be exactly 'production'.
Step 2: Apply selector meaning to resource filtering
Only resources labeled with environment=production will match this selector.
Final Answer:
Selects resources with the label key 'environment' and value 'production'. -> Option A
Quick Check:
Equality selector = exact key-value match [OK]
Hint: Equality selectors match exact key and value pairs [OK]
Common Mistakes:
Confusing key and value positions
Thinking it matches keys only
Assuming it selects resources without the label
2. Which of the following is the correct syntax for a set-based label selector to select pods with label tier in either frontend or backend?
easy
A. tier in (frontend, backend)
B. tier = (frontend, backend)
C. tier notin (frontend, backend)
D. tier == frontend || backend
Solution
Step 1: Recall set-based selector syntax
Set-based selectors use in or notin with parentheses listing values.
Step 2: Match syntax to requirement
To select pods where tier is either frontend or backend, use tier in (frontend, backend).
Final Answer:
tier in (frontend, backend) -> Option A
Quick Check:
Set-based selector uses 'in' with parentheses [OK]
Hint: Use 'in' with parentheses for set-based inclusion [OK]
Common Mistakes:
Using '=' instead of 'in' for sets
Misplacing parentheses
Using '==' or '||' which are invalid
3. Given these pods with labels: pod1: app=web, env=prod pod2: app=web, env=dev pod3: app=db, env=prod What pods will match the selector app=web,env in (prod, staging)?
medium
A. pod1 and pod2
B. pod1 only
C. pod2 only
D. pod3 only
Solution
Step 1: Check 'app=web' equality selector
Pods must have label app with value web. pod1 and pod2 match this.
Step 2: Check 'env in (prod, staging)' set selector
Pods must have env label with value either prod or staging. pod1 has env=prod, pod2 has env=dev.
Final Answer:
pod1 only -> Option B
Quick Check:
Combine equality and set selectors carefully [OK]
Hint: Check each label condition separately, then combine [OK]
Common Mistakes:
Ignoring set-based selector values
Selecting pods with wrong env values
Assuming 'env=dev' matches 'env in (prod, staging)'
4. You wrote this selector to exclude pods with label env=dev: env notin (dev). But it matches pods with env=dev. What is the likely mistake?
medium
A. Using 'notin' with only one value requires no parentheses.
B. The selector should be env!=dev instead.
C. The selector syntax is correct; pods must be relabeled.
D. The label key 'env' is misspelled in some pods.
Solution
Step 1: Understand 'notin' selector behavior
The selector env notin (dev) excludes pods with env=dev if the key and value match exactly.
Step 2: Check for label key consistency
If pods have misspelled or missing env label, selector won't exclude them properly.
Final Answer:
The label key 'env' is misspelled in some pods. -> Option D
Quick Check:
Label keys must match exactly for selectors [OK]
Hint: Check label keys for typos when selectors fail [OK]
Common Mistakes:
Assuming 'notin' works without parentheses
Using '!=' instead of 'notin' for sets
Ignoring label key spelling errors
5. You want to select pods that have label version set to either v1 or v2, but exclude those with label env=dev. Which selector correctly achieves this?
hard
A. version = v1 || v2, env != dev
B. version in (v1, v2) env != dev
C. version in (v1, v2), env notin (dev)
D. version in (v1, v2) && env != dev
Solution
Step 1: Use set-based selector for 'version'
To select pods with version label as v1 or v2, use version in (v1, v2).
Step 2: Use set-based exclusion for 'env'
To exclude pods with env=dev, use env notin (dev).
Step 3: Combine selectors with comma
Separate multiple selectors with commas to combine conditions.
Final Answer:
version in (v1, v2), env notin (dev) -> Option C
Quick Check:
Combine set-based selectors with commas [OK]
Hint: Combine selectors with commas; use 'in' and 'notin' properly [OK]
Common Mistakes:
Using '!=' or '||' which are invalid in selectors
Missing commas between selectors
Incorrect syntax for set-based selectors
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.