WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Kubernetes · Expert · question 61 of 100

Describe the Kubernetes scheduler’s algorithm for placing Pods on Nodes, considering factors like resource requirements, affinity rules, and taints/tolerations.?

📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

The Kubernetes scheduler is responsible for placing Pods onto Nodes in a cluster based on various constraints and requirements. When a Pod is created, the scheduler evaluates the Pod’s specifications, including its resource requirements, affinity rules, and taints/tolerations, to determine the best Node to place the Pod on.

Here are the steps involved in the Kubernetes scheduler algorithm:

Filter Nodes: The scheduler starts by filtering out Nodes that cannot accommodate the Pod’s resource requirements. It does this by comparing the resource requests of the Pod with the available resources on each Node.

For example, if a Pod requires 1GB of memory and 2 CPUs, the scheduler will eliminate Nodes with less than 1GB of available memory or 2 CPUs. This filtering process ensures that only Nodes with sufficient resources are considered for scheduling the Pod.

Rank Nodes: Once the scheduler has filtered out Nodes that cannot accommodate the Pod’s resource requirements, it assigns a score to each remaining Node based on a set of rules. The Node with the highest score is chosen as the best fit for the Pod.

The score is calculated based on various factors, including the Pod’s affinity rules, taints/tolerations, and other scheduling constraints. For example, if a Pod has an affinity rule to run on Nodes with a certain label, the scheduler will give a higher score to Nodes that have that label.

Bind Pod to Node: After ranking the Nodes, the scheduler binds the Pod to the Node with the highest score. If the chosen Node becomes unavailable, the scheduler will select the next best Node and attempt to bind the Pod to that Node.

Here are some examples to illustrate how the Kubernetes scheduler algorithm works:

Example 1: Resource Requirements Suppose we have a cluster with three Nodes, and a Pod with the following resource requirements:

CPU: 2

Memory: 4GB

If Node 1 has 2 CPUs and 8GB of memory, Node 2 has 4 CPUs and 4GB of memory, and Node 3 has 2 CPUs and 2GB of memory, the scheduler will eliminate Node 3 since it does not have enough memory to accommodate the Pod.

The scheduler will then assign a score to Node 1 and Node 2 based on the Pod’s resource requirements. Since Node 2 has more CPUs than Node 1, it will have a higher score. Therefore, the scheduler will place the Pod on Node 2.

Example 2: Affinity Rules

Suppose we have a cluster with three Nodes, and a Pod with an affinity rule to run on Nodes with the label "zone=west". If Node 1 has the label "zone=east", Node 2 has the label "zone=west", and Node 3 has no label, the scheduler will assign a higher score to Node 2 because it satisfies the Pod’s affinity rule. Therefore, the scheduler will place the Pod on Node 2.

Example 3: Taints and Tolerations

Suppose we have a cluster with three Nodes, and a Pod with a toleration for the taint "dedicated=special". If Node 1 has the taint "dedicated=highmem", Node 2 has the taint "dedicated=highcpu", and Node 3 has no taints, the scheduler will eliminate Node 1 and Node 2 since they have taints that the Pod cannot tolerate.

The scheduler will then assign a score to Node 3 based on other constraints, such as resource requirements and affinity rules. Since Node 3 is the only remaining

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Kubernetes interview — then scores it.
📞 Practice Kubernetes — free 15 min
📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

All 100 Kubernetes questions · All topics