A live-sports streaming platform runs each region's control plane on a Kubernetes cluster spread over three availability zones: playback API, heartbeat and entitlement services (stateless, 60 to 200 replicas each), a Redis cache, and a Kafka cluster for heartbeats. In a recent incident one zone lost power during a league match; the scheduler had packed 55 percent of the playback API pods into that zone, the survivors overloaded, and video start failures hit 6 percent for twelve minutes.
The interviewer asks“Design the scheduling for our playback services so that losing a node, or an entire availability zone, at peak does not breach the regional streaming SLO. Show me the topology spread, affinity and disruption budget config you would use, and the capacity maths behind it.”
Spreading only works if every zone can carry the load of the zone that fails, so I start with capacity: with three zones each zone holds half of peak, 1.5 times peak in total, provisioned before the failure. Then zone topology spread with maxSkew 1 and DoNotSchedule plus nodeTaintsPolicy Honor so a dead zone does not block scheduling, and a soft hostname spread so no node holds more than a few percent of a service. Required anti-affinity is reserved for small stateful sets like Redis and Kafka, which also get rack awareness. PDBs protect against drains and consolidation, not outages. Traffic stays zone-local with a zonal shift runbook for gray failure, and I prove it with a real zone-failure drill.
A free account unlocks the rest of it, and saves your progress across every track.
kubectl get List Kubernetes resources and their statuskubectl describe Explain an object's state, conditions and eventskubectl logs Read and follow container logskubectl exec Run a command or shell inside a running containerkubectl apply Create or update resources from YAML, declarativelykubectl delete Delete Kubernetes resources safelykubectl scale Change the replica count of a workloadkubectl rollout Watch, undo and restart Deployment rollouts