Cases2 cases
1 to 2 of 2
- Symptoms
At 18:23 UTC on 28 July 2022, PSF Infrastructure got an alert that at least one Vault container in PyPI's Kubernetes cluster was down and needed unsealing. At 18:46 UTC PyPI's backends became unresponsive, and they stayed down until 18:53 UTC.
- Trigger
From 17:24 UTC the cloud provider automatically replaced several instances of PyPI's Kubernetes cluster because of an unknown failure. All replacements were healthy by 18:20 UTC, but the event reshuffled many pods and restarted Consul and Vault on new nodes.
- Root cause
- Component
- Contributing factor
- Detection
An alert at 18:23 UTC told PSF Infrastructure that at least one Vault container was down and needed unsealing.
- Remediation
- Forcefully removed the Consul pod stuck in Terminating so it was recreated and Consul could elect a leader
- Unsealed the new Vault containers
IL-0220An overloaded AWS Transit Gateway dropped packets on 4 January 2021, and Slack's web tier saturated and went downSlack2021- Symptoms
During the Americas' morning of 4 January 2021, an external monitoring service paged Slack because error rates were creeping up. While the investigation was starting, Slack's own dashboarding and alerting service became unavailable, so responders had to work without their usual dashboards and alerts.
- Trigger
On the first working day after the holidays, Slack's traffic went from the quietest time of the year to one of its biggest days overnight, with cold client caches pulling more data than usual, and one of Slack's AWS Transit Gateways did not scale fast enough for it.
- Root cause
- Component
- Contributing factor
- Detection
An external monitoring service paged Slack when error rates started creeping up during the Americas' morning. AWS engineers were separately alerted to the packet drops by AWS's internal monitoring.
- Remediation
- Disabled automated downscaling of the web tier to keep serving capacity and allow investigation
- Cleared up the broken, partly provisioned instances that filled the autoscaling groups
- Repaired provision-service so new web tier instances could be provisioned and enter service
- AWS engineers increased the Transit Gateway capacity manually across all Availability Zones
- Action items
- AWS reviews its Transit Gateway scaling algorithms for large packet-per-second increases
- Request a preemptive upscaling of the Transit Gateways at the end of the next holiday season
- Run the dashboard service instances in the same VPC as their database to remove the Transit Gateway dependency
- Load test provision-service regularly
- Reevaluate health-checking and autoscaling configurations so they cannot overload provision-service again
- Lessons
Monitoring has to stay as independent as possible of the infrastructure it watches, or it fails when it is needed most. Here the dashboard and alerting services failed because they ran in a different VPC from their databases and so depended on the Transit Gateways. provision-service had been load tested before, but this event exceeded the earlier scale-ups.
These 2 cases involve Automated capacity manager and Coordination and key-value store. 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 cause1
Cloud provider outage2 cases
- Component
- Contributing factor
- Organisation