Cases2 cases
1 to 2 of 2
- Symptoms
At 13:42 the RootVolUtilisation-Critical alert fired in the high-priority alerts channel. At 14:03 a user reported image pull errors with the message "no space left on device".
- Trigger
Upgrading the EKS Terraform module to version 18, which changed the node launch template, and draining workloads onto the new nodes it created.
- Root cause
- Component
- Contributing factor
- Detection
The RootVolUtilisation-Critical alert fired in the high-priority alerts channel at 13:42, and a user reported "no space left on device" image pull errors at 14:03.
- Remediation
- Uncordoned the old default node group and drained the new nodes to move workloads back
- Identified the launch template change that cut the root volume to 20 GB and applied a fix on the manager and live clusters
- Drained the old node group onto the fixed nodes
- Action items
- Update the runbook to compare launch template changes during an EKS module upgrade
- Create a test setup that pulls images of different sizes, like live
- Update the RootVolUtilisation alert runbook to check the disk space configuration
- Scale CoreDNS dynamically based on the number of nodes
- Investigate whether IPv6 can solve the IP prefix starvation problem
- Add drift testing to identify when a terraform plan shows a change to the launch template
- Set up logging for the CNI and ipamd logs and alerts on errors related to IP prefix starvation
- Lessons
The write-up lists review actions rather than lessons. They aim at two gaps: the launch template changes brought by a module upgrade were not compared or drift-tested before rollout, and there were no CNI or ipamd logs or alerts to show the IP prefix starvation the team suspected during the drain.
IL-0461Every rollout of Datadog's metrics query service on Kubernetes raised errors that the logs blamed on DNSDatadog2022- Symptoms
From September 2021, each rollout of an update to Datadog's metrics query service, which serves real-time and historical metric data to the web frontend and to monitor evaluation, came with a rise in errors. Clients retried failed queries, so few errors reached users, but the retries slowed dashboards and monitors. The service's logs showed DNS errors stopping it from connecting to the data stores it depends on.
- Trigger
Rollouts of the metrics query service, which delete the old pods. The client behaviour behind the failures came from an August 2021 rollout of the metrics query clients that applied round_robin as the new default gRPC load balancing policy.
- Root cause
- Component
- Contributing factor
- Detection
Errors rose during rollouts of the metrics query service, and the service's logs showed DNS errors when connecting to its data stores.
- Remediation
- Raised the memory of the node-local-dns pods from 64 MB to 256 MB, which stopped the OOM kills but not the DNS errors
- Tested larger instance types and confirmed that scaling up the service's infrastructure resolved the errors
- Removed the custom gRPC reconnect parameters from the clients to restore the defaults
- Action items
- Contribute a change to Cilium that adds an unreachable route for a deleted pod's IP so clients get an ICMP error
- Lessons
The errors looked like DNS but were not. ENA metrics and VPC Flow Logs gave the visibility into VPC connection tracking that host metrics did not, and Cilium, Kubernetes and AWS networking interact in ways that can make reverse path filtering drop packets it should allow. DNS propagation time depends on many settings. The causes were changes Datadog had made itself, to work around a dependency bug, to resolve earlier incidents and to override default reconnect parameters, which looked safe at the time and showed their effects much later, when the link was hard to see.
These 2 cases involve CoreDNS and Cilium. 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
Configuration change2 cases
- Component
- Contributing factor
- Organisation