Incident Library
Applied filters Root causeSoftware defectSymptomDNS resolution failuresFactorUnreviewed defaultsClear allEvery case under the filters, with no sentence; newest first.
Suggested filters Search, and the values found in your words appear here.

Graph

  • Root cause
  • Component
  • Symptom
  • Contributing factor
  • Case

Cases2 cases

1 to 2 of 2

  1. Symptoms

    On 4 September 2025 a CoreDNS pod in a Cisco ThousandEyes Kubernetes cluster was OOMKilled.

    Trigger

    A CoreDNS pod was OOMKilled.

    Root cause
    Component
    Contributing factor
    Lessons

    The closing slide sets three behaviours side by side: Istio's extremely aggressive DNS cache refresh with one client port reused for all DNS requests, kube-proxy's lack of a cleanup mechanism for stale conntrack entries of terminated pods (fixed in Kubernetes v1.32), and conntrack's default bidirectional UDP stream timeout of 2 minutes. The speaker describes Istio as making some very complex things simple but some very simple things complex, and presents Cilium, which looks up Services in maps instead of walking the KUBE-SERVICES chain and can replace kube-proxy entirely with its eBPF data path.

  2. Symptoms

    Services that used the team's Redis-dependent library crashed on start-up, and their teams reported it to the ops members. The Spring Boot logs showed the applications failing to resolve the Redis hostname during bean initialisation.

    Root cause
    Component
    Contributing factor
    Detection

    Service teams reported start-up crashes to the ops members of the team; later the resolution failures were seen in Kibana.

    Remediation
    • set ndots to 4 with a dnsConfig block in the Kubernetes deployment manifests
    • corrected the maximum connection pool size in the Redis library, cutting Redis connections by about 70%
    Action items
    • Test Debian glibc-based base images added to the image library to see whether they resolve the DNS problems
    • Update dependencies to newer Netty versions
    Lessons

    With ndots:5, a name outside the cluster that has fewer than five dots is first tried with every cluster search domain. Adding a trailing dot avoids that, but only if every library in the path accepts it, and the Netty version in use did not. The ndots change is a workaround that will not hold forever. The author would like better alerting for this kind of failure but notes that alerts on one-off DNS failures are not wanted.

Check your cluster for this

These 2 cases involve conntrack table and CoreDNS. 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