Bird
Raised Fist0
Kubernetesdevops~20 mins

Node selectors for simple scheduling in Kubernetes - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Node Selector Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What does a node selector do in Kubernetes scheduling?

In Kubernetes, what is the primary purpose of using a nodeSelector in a Pod specification?

AIt restricts the Pod to be scheduled only on nodes that have matching labels specified in the nodeSelector.
BIt automatically scales the number of Pods based on node CPU usage.
CIt assigns a static IP address to the Pod within the cluster network.
DIt encrypts the Pod's data at rest on the node's disk.
Attempts:
2 left
💡 Hint

Think about how Kubernetes decides where to place Pods based on node labels.

💻 Command Output
intermediate
1:30remaining
Output of kubectl get pods with nodeSelector applied

You have a Pod with the following nodeSelector:

nodeSelector:
  disktype: ssd

After applying this Pod manifest, what will kubectl get pods -o wide show in the NODE column?

Kubernetes
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: nginx
    image: nginx
  nodeSelector:
    disktype: ssd
AAn error message indicating invalid nodeSelector.
BThe name of any node in the cluster, regardless of labels.
C<none> because the Pod is pending and not scheduled.
DThe name of a node that has the label 'disktype=ssd'.
Attempts:
2 left
💡 Hint

Check how nodeSelector affects Pod scheduling and node assignment.

❓ Configuration
advanced
2:00remaining
Correct nodeSelector syntax in Pod manifest

Which of the following Pod YAML snippets correctly uses nodeSelector to schedule the Pod on nodes labeled zone: us-east-1?

A
spec:
  nodeSelector:
    - zone: us-east-1
  containers:
  - name: app
    image: myapp
B
spec:
  nodeSelector:
    zone: "us-east-1"
  containers:
  - name: app
    image: myapp
C
spec:
  nodeSelector:
    zone: us-east-1
  containers:
  - name: app
    image: myapp
D
spec:
  nodeSelector:
    zone: [us-east-1]
  containers:
  - name: app
    image: myapp
Attempts:
2 left
💡 Hint

Remember that nodeSelector expects a map of key-value pairs with string values.

❓ Troubleshoot
advanced
2:00remaining
Pod stuck in Pending state with nodeSelector

You created a Pod with this nodeSelector:

nodeSelector:
  gpu: "true"

The Pod remains in Pending state indefinitely. What is the most likely cause?

ANo nodes in the cluster have the label <code>gpu=true</code>.
BThe Pod image is invalid and cannot be pulled.
CThe nodeSelector syntax is incorrect and causes a scheduling error.
DThe Pod's resource requests exceed the node capacity.
Attempts:
2 left
💡 Hint

Check if any node matches the nodeSelector labels.

✅ Best Practice
expert
2:30remaining
Best practice for nodeSelector usage in multi-environment clusters

You manage a Kubernetes cluster shared by multiple teams and environments. Which approach is best to use nodeSelector for simple scheduling to isolate workloads by environment?

AUse nodeSelector with random labels to distribute Pods evenly across all nodes.
BAvoid nodeSelector and rely only on resource requests for scheduling decisions.
CLabel nodes with environment names (e.g., <code>env=dev</code>, <code>env=prod</code>) and use matching nodeSelectors in Pod specs.
DLabel Pods with environment names and use nodeSelector to match Pod labels.
Attempts:
2 left
💡 Hint

Think about how nodeSelector matches node labels, not Pod labels.

Practice

(1/5)
1. What is the main purpose of using nodeSelector in a Kubernetes Pod specification?
easy
A. To limit the number of pods running in the cluster
B. To schedule pods only on nodes with specific labels
C. To automatically update pods when nodes change
D. To create a backup of pod data on nodes

Solution

  1. Step 1: Understand nodeSelector role

    The nodeSelector field in a Pod spec is used to specify labels that a node must have for the pod to be scheduled there.
  2. Step 2: Compare options with nodeSelector purpose

    Only To schedule pods only on nodes with specific labels correctly describes this scheduling control. Other options describe unrelated features.
  3. Final Answer:

    To schedule pods only on nodes with specific labels -> Option B
  4. Quick Check:

    nodeSelector = schedule pods on labeled nodes [OK]
Hint: nodeSelector matches pod to node labels for placement [OK]
Common Mistakes:
  • Thinking nodeSelector limits pod count
  • Confusing nodeSelector with pod updates
  • Assuming nodeSelector backs up pod data
2. Which of the following is the correct syntax to specify a nodeSelector in a Pod YAML manifest?
easy
A. nodeSelector: disktype=ssd
B. nodeSelector: - disktype: ssd
C. nodeSelector: disktype: ssd
D. nodeSelector: [disktype=ssd]

Solution

  1. Step 1: Recall nodeSelector YAML format

    nodeSelector is a map of key-value pairs under the nodeSelector field, indented properly.
  2. Step 2: Check each option's syntax

    nodeSelector: disktype: ssd uses correct YAML mapping with key and value properly indented. Options B, C, and D use invalid YAML or wrong formats.
  3. Final Answer:

    nodeSelector: disktype: ssd -> Option C
  4. Quick Check:

    nodeSelector uses key: value map in YAML [OK]
Hint: Use key: value under nodeSelector with proper indentation [OK]
Common Mistakes:
  • Using list syntax instead of map
  • Writing nodeSelector as a string
  • Incorrect indentation causing YAML errors
3. Given the following node labels:
node1: disktype=ssd
node2: disktype=hdd
And this Pod spec snippet:
spec:
  nodeSelector:
    disktype: ssd
On which node will the Pod be scheduled?
medium
A. node1
B. node2
C. Either node1 or node2
D. No node, pod will remain pending

Solution

  1. Step 1: Match pod nodeSelector with node labels

    The pod requires a node with label disktype=ssd. node1 has this label, node2 does not.
  2. Step 2: Determine pod scheduling

    Since only node1 matches the label, the pod will be scheduled on node1.
  3. Final Answer:

    node1 -> Option A
  4. Quick Check:

    Pod nodeSelector matches node1 label [OK]
Hint: Pod schedules only on nodes matching all nodeSelector labels [OK]
Common Mistakes:
  • Assuming pod can schedule on any node
  • Ignoring label key-value exact match
  • Thinking pod schedules on multiple nodes simultaneously
4. You wrote this Pod spec:
spec:
  nodeSelector:
    disk-type: ssd
But your nodes have label disktype=ssd (no dash). What will happen when you try to schedule the Pod?
medium
A. Pod will remain pending, no matching nodes found
B. Pod will schedule on nodes with label disktype=ssd
C. Pod will schedule on nodes with label disk-type=ssd
D. Pod will schedule on any available node

Solution

  1. Step 1: Compare nodeSelector key with node labels

    The pod requests nodes with label disk-type=ssd, but nodes have disktype=ssd. The keys differ by a dash.
  2. Step 2: Understand label matching behavior

    Labels must match exactly. Since no node has disk-type=ssd, pod cannot be scheduled.
  3. Final Answer:

    Pod will remain pending, no matching nodes found -> Option A
  4. Quick Check:

    Label keys must match exactly for nodeSelector [OK]
Hint: Label keys must match exactly, including dashes [OK]
Common Mistakes:
  • Assuming partial key match works
  • Thinking pod schedules on any node if no match
  • Confusing label key spelling
5. You want to ensure a Pod runs only on nodes labeled region=us-west and disktype=ssd. Which is the correct nodeSelector configuration?
hard
A. nodeSelector: region: us-west, disktype: ssd
B. nodeSelector: region=us-west disktype=ssd
C. nodeSelector: - region=us-west - disktype=ssd
D. nodeSelector: region: us-west disktype: ssd

Solution

  1. Step 1: Understand nodeSelector format for multiple labels

    nodeSelector is a map of key-value pairs, each on its own line with proper indentation.
  2. Step 2: Evaluate each option's syntax

    nodeSelector: region: us-west disktype: ssd correctly lists two key-value pairs. nodeSelector: region: us-west, disktype: ssd uses invalid comma syntax. nodeSelector: - region=us-west - disktype=ssd uses list syntax which is invalid. nodeSelector: region=us-west disktype=ssd uses equals signs incorrectly.
  3. Final Answer:

    nodeSelector: region: us-west disktype: ssd -> Option D
  4. Quick Check:

    Multiple labels in nodeSelector use separate key: value lines [OK]
Hint: List each label as key: value pair under nodeSelector [OK]
Common Mistakes:
  • Using commas to separate labels
  • Using list syntax instead of map
  • Using equals signs instead of colon in YAML
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard