Interview Kubernetes, Docker, Helm & Podman

How does the scheduler decide where to place a Pod?

Kubernetes, Docker, Helm & Podman · Intermediate level

Answer

The scheduler places a Pod by filtering nodes that cannot run it and scoring nodes that can. It evaluates resources, taints and tolerations, affinity, topology spread, volume constraints, node conditions, and plugin-specific policies.

Technical explanation

Scheduling has filter and score phases, then binding; failures usually appear as FailedScheduling events.

The scheduler does not create capacity by itself; autoscalers or operators respond to unschedulable workloads.

Scheduling controls place workloads correctly; RBAC and ServiceAccounts decide what identities can do after placement.

Use labels consistently because Services, Deployments, affinities, policies, and topology spread all depend on label selection.

Every constraint should be testable with events: FailedScheduling, denied API calls, or observed placement.

Hands-on example

1. Create a lab namespace for this exercise with explicit labels, ServiceAccounts, roles, node labels, or taints: watch scheduler decisions for Pods with resource and placement constraints.

2. Use kubectl auth can-i, kubectl describe pod, and scheduling events to verify the expected decision.

3. Test a negative case, such as missing permission, missing toleration, or impossible affinity, and capture the exact error.

4. Convert the validated YAML into a reusable platform pattern with clear naming and labels.

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Kubernetes, Docker, Helm & Podman interview questions

← All Kubernetes, Docker, Helm & Podman questions