Stories
Adam
- 4 minutes read - 751 wordsKubernetes Failure Stories
Welcome to our collection of real-world Kubernetes failure stories. These are actual incidents that have occurred in production environments, shared to help others learn and avoid similar issues.
Featured Stories
The Great Disk Space Crisis
Date: March 15, 2023 Environment: Production cluster with 50 worker nodes Impact: 4 hours of complete outage
What Happened: One of our earliest major incidents occurred when a logging sidecar container was misconfigured and began writing unbounded log files to an emptyDir volume. The application team had set the log level to DEBUG during troubleshooting but forgot to revert it. Within 6 hours, all worker nodes ran out of disk space, causing a cascade of failures.
Root Cause:
- Logging sidecar writing to emptyDir volume without size limits
- No disk space monitoring alerts configured
- Multiple replicas compounding the issue
Lessons Learned:
- Always set resource limits on logging containers
- Implement monitoring for disk space at node level (alerts at 70%, 80%, 90%)
- Use persistent volumes for critical data, not emptyDir
- Automate log level management with proper cleanup
Preventive Measures Implemented:
- Added Prometheus alerts for node disk usage
- Configured log rotation for all containers
- Set default resource quotas including storage limits
- Implemented automated log level management
The DNS Outage That Wasn’t
Date: July 22, 2023 Environment: Staging cluster with network policy enforcement Impact: 2 hours of degraded performance
What Happened: We experienced what appeared to be a complete DNS outage in our staging environment. Applications couldn’t resolve external DNS names, and internal service discovery was also affected. Initial investigation pointed to CoreDNS issues, but the pods were running normally.
Root Cause: The issue turned out to be a misconfigured NetworkPolicy that was blocking egress traffic from the kube-dns pods to external DNS servers. A new security policy had been applied that was too restrictive.
Lessons Learned:
- Test NetworkPolicies thoroughly in a non-production environment first
- Have a fallback DNS resolution mechanism
- Monitor DNS query success rates and latency
- Implement NetworkPolicy exceptions for critical infrastructure
Preventive Measures Implemented:
- Added NetworkPolicy testing to CI/CD pipeline
- Created dedicated DNS monitoring dashboard
- Implemented gradual NetworkPolicy rollout process
- Added exception labels for critical infrastructure pods
The RBAC Lockout Incident
Date: November 5, 2023 Environment: Production cluster Impact: 30 minutes of admin access loss
What Happened: An overly restrictive RBAC policy was applied during a security hardening exercise that accidentally revoked admin access to the cluster for all service accounts and users. We had to use the physical console on a control plane node to restore access using the static pod manifests.
Root Cause:
- RBAC policy applied directly to production without proper testing
- No break-glass procedure in place
- Single admin account with no backup credentials
Lessons Learned:
- Always maintain a break-glass procedure with physical access
- Test RBAC changes in staging environment first
- Have multiple admin accounts with different credential sources
- Implement RBAC policy validation in CI/CD
Preventive Measures Implemented:
- Created break-glass procedure documentation
- Set up separate staging cluster for RBAC testing
- Implemented multiple admin accounts with different authentication methods
- Added RBAC policy linting to deployment pipeline
Story Categories
Storage Failures
- Disk space exhaustion
- Volume mounting issues
- Persistent volume corruption
- Storage class misconfigurations
Networking Issues
- DNS resolution problems
- Network policy misconfigurations
- Service mesh failures
- Ingress controller outages
Security Incidents
- RBAC misconfigurations
- Pod escape vulnerabilities
- Secret management failures
- Network breaches
Scheduling Problems
- Resource starvation
- Node affinity/anti-affinity issues
- Taint and toleration misconfigurations
- Pod eviction storms
Submit Your Story
Have a Kubernetes failure story to share? We’d love to hear about your experiences and lessons learned. Your contributions help the entire community improve!
How to Submit
- Fork this repository on GitHub
- Create a new markdown file in the
content/posts/directory - Follow our template (see existing posts for examples)
- Submit a pull request with your story
Story Guidelines
- Be detailed about what happened
- Include the root cause analysis
- Share the lessons learned
- Explain preventive measures implemented
- Keep it professional and constructive
What We’re Looking For
- Real production incidents (no hypotheticals)
- Technical depth and analysis
- Honest assessment of what went wrong
- Practical lessons and solutions
- Willingness to share openly with the community
Why Share Your Stories?
Sharing failure stories helps:
- Prevent similar incidents in other organizations
- Improve collective knowledge about Kubernetes operations
- Build a stronger community of knowledgeable operators
- Reduce stigma around discussing failures openly
- Accelerate learning for new Kubernetes users
“Success is not final, failure is not fatal: It is the courage to continue that counts.” - Winston Churchill
Browse All Stories
Check out our posts section for more Kubernetes failure stories and lessons learned from the community.