Problems / Kubernetes and containers, medium
Three pods run on three nodes, each limited to 1 vCPU and busy most of the time. At 30 s one node dies; Kubernetes replaces its pod only after 50 s plus the 5-minute toleration.
Unlock it once for 15 credits; everything inside it is free (runs, changes, Submit, results, hints). Sign in with Google to start; new accounts get free credits.
Keep success at 92% or more and p99 under 1 s over the run. (Some requests are always lost in the 50 s before Kubernetes notices a node is gone.)
Like a coding problem, a solution has to pass every case, not just the one it was built for. Submit in the lab runs all 3; 1 of them are hidden until then.
60 requests a second for 300 seconds: 100% api (reads).
What each component does in this design, and what calls it. The simulator mimics each one from these settings.
| Component | Its job here | Settings |
|---|---|---|
| Load balancerLoad balancer | Traffic enters here.Calls API (pods).Layer 4 balancers route by IP and port; layer 7 balancers read HTTP and can route by path or header. | – |
| API (pods)Container platform | Load balancer forwards to it.Calls Postgres.Kubernetes places pods on nodes by their CPU and memory requests, and only replaces a lost node's pods after about 5 minutes. | 20 slots |
| PostgresSQL database | API (pods) calls it.Postgres runs one process per connection, which is why poolers like PgBouncer sit in front of busy databases. | 32 vCPU · 300 connections |