Cases2 cases
1 to 2 of 2
IL-0133A storm shut down cooling at Nebius's us-central1 data center, and a disk hot-plug bug kept Managed Kubernetes control planes down for hours after power returnedNebius2026- Symptoms
On 19 August 2026 the first equipment-level signs in Nebius's us-central1 region appeared around 09:40 UTC: the InfiniBand fabric degraded and GPU over-temperature alerts began to accumulate. Customer reports followed shortly after 10:00. At 10:15 on-call engineers were paged on critical component temperature alerts, and the incident was declared at 10:21.
- Trigger
A storm-related event at the data center building took the building management system offline and shut down the chilled-water cooling loop.
- Root cause
- Component
- Contributing factor
- Detection
No facility-level alert fired, because the storm also disabled the building management system that monitors the facility. Engineers acted on component over-temperature alerts that paged on-call at 10:15 UTC, after InfiniBand degradation, GPU over-temperature alerts and customer reports; the temperature rise from about 09:15 was visible on dashboards but had no alert.
- Remediation
- had the facility operator switch cooling to manual bypass mode and opened rack rear doors to vent heat
- re-energised tripped racks, control-plane racks first
- restored the regional infrastructure control plane by manual intervention
- restarted block-storage host components to clear stale disk attachment state
- raised the VM recovery rate limits by hand for the region-scale recovery
- started the affected Managed Kubernetes control-plane instances by hand
- applied a controlled stop and start to control-plane instances whose data disk had been left unattached
- identified and started 104 customer VMs that the incident had stopped
- Action items
- Complete a joint resilience review with the facility operator covering redundancy of facility-management and monitoring systems, cooling that keeps running when those fail, electrical protection of cooling equipment and on-site response
- Add facility-level environmental alerting on cooling plant state and room temperature trend that pages on-call independently of the building management system
- Set up a documented emergency escalation path with the facility operator, with an on-call contact tree and guaranteed response times
- Define an emergency heat-load reduction procedure with criteria, ownership and mechanics for shutting down or degrading workloads during a cooling loss
- Establish a dependency-ordered region cold-start procedure with clear ownership for each service layer
- Run regular region-scale recovery drills that cover VMs, storage attachments and Managed Kubernetes clusters
- Fix the disk-attachment bug that extended the Managed Kubernetes outage and deploy the fix to all production regions
- Improve the recovery policies Compute users can configure, and move all Managed Kubernetes control-plane nodes to the improved policy
- Automate reconciliation of stale storage attachment state after abrupt host failures
- Remove in-region dependencies from monitoring startup and recovery, and extend cross-region monitoring
- Make regional health checks used for global traffic management reflect real service availability
- Lessons
Facility monitoring that runs on the same system it watches goes silent in exactly the failure it should report, and with no alert on the room temperature trend there was no practical window to shed heat load in a controlled way. A cold start of a whole region exercised recovery paths built for isolated failures: single-attempt VM recovery, conservative rate limits and stale disk attachments all needed manual work. The longest part of the outage was restoring customer resources, Managed Kubernetes control planes above all, so Nebius is extending its recovery drills to that layer.
IL-0060Kubernetes 1.24 upgrade removed the master node label that Calico route reflectors selected on, dropping all pod routes and taking Reddit down for 314 minutesReddit2023- Symptoms
About two minutes after an engineer started the Kubernetes 1.23 to 1.24 upgrade of the cluster running Reddit's legacy stack, just after 19:00 UTC, the site stopped. The CDN edge request graph, which is kept separate from the cluster, showed traffic by status collapsing. Users saw the error page, a homepage with no posts, or plain errors.
- Trigger
An in-place upgrade of the legacy cluster from Kubernetes 1.23 to 1.24; in 1.24 the node-role.kubernetes.io/master label is removed even from running clusters.
- Root cause
- Component
- Contributing factor
- Detection
The site broke about two minutes into the upgrade; an incident was opened immediately and responders were on the call within three minutes, working from CDN edge graphs because the cluster's own metrics were gone.
- Remediation
- deleted the Open Policy Agent webhook configurations to stop API server timeouts
- terminated all worker nodes of the cluster
- restored the control plane from the pre-upgrade backup onto the first control plane node
- switched off the cluster autoscaler until the control plane was stable
- generated new TLS certificates so replacement control plane nodes could join etcd
- brought traffic back in steps from 1% to 100%
- restarted legacy services that had been stopped by hand
- Action items
- Codify cluster configuration so every choice has a record, and document in detail what cannot be codified
- Standardise components across clusters and replace bespoke configurations
- Build tooling to manage the lifecycle of whole clusters so they can be recreated or replicated
- Add pre-production clusters that can be tested with confidence
- Improve the backup restore process and make cluster upgrades safe
- Lessons
Configuration that exists only in a live cluster, edited by hand through a special tool, can be forgotten, as the route reflector setup was, and then break on an upgrade nobody connects it to. A Kubernetes upgrade cannot be reverted without a restore, so the restore procedure has to be kept current and practised. Consistent, codified clusters are what make upgrades testable; bespoke clusters keep producing outages.
These 2 cases involve etcd and Admission webhook. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.
By root cause2
Dependency failure1 case
- Contributing factor
- Organisation
Breaking change in an upgrade1 case
- Contributing factor
- Organisation