Skip to content
tezvyn:

Scheduling

25 bites tagged Scheduling — interview questions with model answers, and 60-second explainers.

Node.js & Express1 min read

nextTick vs setImmediate vs setTimeout(fn, 0)

NextTick is a microtask that drains before the loop continues; setImmediate runs in check; setTimeout(0) in timers. precise ordering of deferral mechanisms.

MLOps & Infrastructure1 min read

Directed Acyclic Graph (DAG) for Workflows

A DAG models a workflow as tasks (nodes) connected by dependency edges with no cycles, so a scheduler knows the valid execution order. It enables parallelism, safe retries, and idempotent reruns, and underpins orchestrators like Airflow for ML pipelines.

Docker & Kubernetes1 min read

Topology spread constraints versus pod anti-affinity

Spread constraints balance pod counts per domain bounded by maxSkew, anti-affinity is all-or-nothing co-location avoidance, and maxSkew caps the difference between fullest and emptiest… Proportional spread versus binary repulsion.

Docker & Kubernetes1 min read

Taints and tolerations versus node affinity

Taints repel pods from nodes (reserve hardware), affinity attracts pods to nodes, and you combine both so only tolerating pods land AND only those pods seek the node. Knowing repulsion versus attraction.

Docker & Kubernetes1 min read

Spreading replicas across availability zones

Use topologySpreadConstraints on topology.kubernetes.io/zone with a small maxSkew, choose DoNotSchedule or ScheduleAnyway, and confirm nodes carry zone labels. Designing zone-resilient placement.

Docker & Kubernetes1 min read

Required vs preferred node affinity rules

Required is a mandatory filter, preferred is a weighted preference, and IgnoredDuringExecution means rules apply only at scheduling time. Understanding hard vs soft scheduling constraints.

Docker & Kubernetes1 min read

What are the three Pod QoS classes?

Guaranteed when every container sets equal requests and limits for CPU and memory; Burstable when requests are set but not matching limits; BestEffort when none are set; lower classes are evicted first under… QoS and eviction priority.

Docker & Kubernetes1 min read

How do you stop new Pods scheduling on a node?

Kubectl cordon marks the node unschedulable so no new Pods land, while existing Pods keep running; drain is the follow-up that also evicts them. node maintenance basics.

Docker & Kubernetes1 min read

How do you pin a Pod to nodes with a given label?

The simplest tool is nodeSelector, a key-value map in the Pod spec requiring matching node labels; node affinity is the richer alternative for complex rules. basic node selection.

Docker & Kubernetes1 min read

Requests vs limits for CPU and memory?

Requests guide scheduling and reservation, limits cap usage; exceeding a CPU limit throttles the container, while exceeding a memory limit triggers an OOMKill since memory is incompressible. resource management basics.

Docker & Kubernetes1 min read

Spreading Pods one-per-node for availability

Use required podAntiAffinity with topologyKey kubernetes.io/hostname matching the Deployment's own pod labels, so the scheduler refuses to co-locate two Pods on a node. Pod anti-affinity knowledge.

Docker & Kubernetes1 min read

Scheduler filtering and scoring phases

Filtering eliminates infeasible Nodes via resources, taints, and affinity, then scoring ranks the survivors to pick the best, after which the Pod is bound. how Pods get placed on Nodes.

Docker & Kubernetes1 min read

What happens after kubectl apply

Apiserver validates and persists to etcd, scheduler binds the Pod to a Node, kubelet pulls the image and starts the container via the runtime, status flows back. the request-to-running flow across components.

MLOps & Infrastructure2 min read

Design a cost-aware ML training platform for heterogeneous hardware

Tests hardware abstraction and cost-aware cross-accelerator scheduling. Strong answers cover a device-agnostic spec, a performance predictor, a cost-per-step model, and bin-packing against spot prices. Red flag: ignoring per-step cost and migration overhead.

MLOps & Infrastructure2 min read

Design multi-tenant GPU cluster scheduling and preemption policies

Tests ability to design fair GPU scheduling preventing starvation and noisy-neighbor issues. Answer: Kueue for fair-share, namespace quotas with MIG, priority classes with backoff.

MLOps & Infrastructure2 min read

Design training job submission to a shared Kubernetes cluster

Gateway with artifact caching; namespace quotas; GPU schedulers like Volcano; Prometheus metrics and cost attribution. Multi-tenant ML infrastructure with usability, fairness, observability.

Go & Rust2 min read

What is the fundamental difference between a goroutine and an OS thread?

This tests your grasp of Go's M:N scheduler. A strong answer notes that goroutines are runtime-managed, multiplexed onto OS threads, and use far less memory per unit, enabling thousands of concurrent tasks.

Docker & Kubernetes2 min read

Pod QoS Classes: Guaranteed, Burstable, BestEffort

Kubernetes QoS classes are eviction priorities, not performance guarantees. Under node pressure, the kubelet kills BestEffort pods first, then Burstable, then Guaranteed. Omitting limits does not grant infinite headroom; it makes your pod die first.

Docker & Kubernetes2 min read

Pod Topology Spread: Spreading Pods for High Availability

Pod Topology Spread Constraints prevent putting all your pods in one basket. They instruct the scheduler to distribute a service's pods evenly across nodes or zones, improving availability. The main footgun is that it's a soft preference by default.

Docker & Kubernetes2 min read

Pod Priority: Deciding Who Gets Evicted in Kubernetes

Pod Priority is a VIP pass for your critical workloads, telling the scheduler which pods can bump others off a node. This ensures system-critical services run even on a full cluster. The footgun: high-priority pods can cause cascading evictions if not planned.

Docker & Kubernetes2 min read

Node Affinity: Tell Your Pods Where to Go

Node affinity is like giving pods a 'preferred seating' list for nodes. You guide the scheduler to nodes with specific labels, like those with GPUs or in a certain zone. The footgun is confusing 'required' (a hard rule) with 'preferred' (a suggestion).

Docker & Kubernetes2 min read

Kubernetes Taints and Tolerations: Repelling Pods

Taints act like 'No Trespassing' signs on Kubernetes nodes, repelling pods. Tolerations are the keys that let specific pods ignore those signs. Use this to reserve nodes for special hardware or critical workloads, preventing general pods from landing there.

Docker & Kubernetes2 min read

Pod Affinity: Grouping or Separating Your Pods

Pod affinity tells Kubernetes to place pods together for performance or apart for high availability. Use it to co-locate a web server and cache for low latency, or spread database replicas across nodes to prevent a single point of failure.

Docker & Kubernetes2 min read

Kubernetes CronJob: Scheduled Tasks in Your Cluster

A Kubernetes CronJob is like a recurring alarm for your cluster. It automatically runs tasks like backups or reports on a schedule, creating a new Job for each run. The main footgun is concurrency: by default, jobs can overlap if one runs too long.

Get Scheduling bites daily.

Five a day, five minutes, offline. With quizzes so it sticks.

Open testing — you’ll join as an early tester.