Cases2 cases
1 to 2 of 2
IL-0530Virtual router controllers in us-central1 ran out of memory in a loop, cutting networking for new and migrated VMsGoogle Cloud2023- Symptoms
On 5 October 2023 in us-central1, newly created VMs waited a long time before their networking worked, and VMs that had been live migrated lost connectivity for a long time after the migration. Networking telemetry showed cross-region packet loss to and from us-central1 from 03:08 US/Pacific. Health check state of VMs reached load balancers late.
- Trigger
A management plane behaviour change, meant to decouple the processing of API updates to Instance Groups and Network Endpoint Groups used as load balancer backends, was deployed in us-central1 after rolling out to several other regions without incident.
- Root cause
- Component
- Contributing factor
- Detection
Engineers were alerted to slowness in the virtual network control plane in us-central1 at 21:45 US/Pacific on 4 October, before the packet loss started, and to controller failures from memory exhaustion at 02:11 on 5 October. Networking telemetry showed cross-region packet loss from 03:08.
- Remediation
- Increased the memory allocated to the virtual network router controllers
- Rolled back the management plane change in us-central1
- Restarted by hand the routers that were still not accepting updates
- Action items
- Alert proactively on memory risks and unexpected memory increases
- Refactor the deployment configuration so engineers can reallocate memory much faster
- Re-evaluate existing practices and add safety mechanisms for API reconciliation
- Make management plane changes more visible across teams so the changes can be correlated faster
- Adjust the deployment footprint so a regional API change is less likely to exhaust memory across the region at once
- Optimise memory use in the traffic routers and their controllers
IL-0473Jenkins infrastructure went fully down after a pod IP range fix deleted every AKS node pool and could not recreate themJenkins project2023- Symptoms
On 7 July 2023 from 11:05 to 15:25 UTC many public Jenkins infrastructure services were completely down, including get.jenkins.io, plugins.jenkins.io, accounts.jenkins.io, javadoc.jenkins.io and incrementals.jenkins.io, while ci.jenkins.io, issues.jenkins.io, repo.jenkins-ci.org and www.jenkins.io were partly or completely disrupted.
- Trigger
After the upgrade to Kubernetes 1.25 changed the range of the pods' originating IP and LDAP access was blocked, a fix (Azure PR 431) deployed at 10:55 UTC to set a proper set of pod IP ranges removed all node pools of the cluster.
- Root cause
- Component
- Contributing factor
- Detection
After the upgrade, at 10:30 UTC, the team noticed that services inside the cluster, such as accounts.jenkins.io, could not reach the LDAP service.
- Remediation
- Created the cluster again from scratch with a fixed network setup
- Set a custom pod CIDR in a range separate from the virtual network
- Moved the services and their DNS records to new public IPs
- Pushed a pull request that recorded the manual rebuild, including the IP setup, in code
- Action items
- Protect the public IPs from deletion with a Management Lock
- Keep the public IPs in a separate resource group and point the Kubernetes-managed load balancers to it with the service.beta.kubernetes.io/azure-load-balancer-resource-group annotation
- Improve network diagrams and documentation so possible overlaps are visible when preparing operations
- Avoid changing the configuration of all AKS node pools at once
- Lessons
The team said that changing one node pool at a time would have shown the problem after the first pool and avoided a full outage, and that the public IPs should change as little as possible because users behind corporate firewalls with allow-lists depend on them. The team also noted that it could rebuild, in under 4 hours, the cluster that hosts almost all public services.
These 2 cases involve Cloud load balancer and CNI plugin. 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
Faulty deployment1 case
- Contributing factor
- Organisation
Configuration change1 case
- Contributing factor
- Organisation