Liveness probe could never pass — cause of 920 restarts in 35 days

FixKlusterServices
Shipped
August 5, 2026 at 12:11 AM UTC
Author
Kamo
Commit
00ad3ef

Root cause: the liveness probe was `tcpSocket: port 10000`, but Scylla's REST API binds to api_address 127.0.0.1 (its default) while a tcpSocket probe dials the POD IP. Verified from inside the container — /proc/net/tcp shows :10000 listening only on 0100007F (127.0.0.1), whereas 9042/9180/7000/19042 are on the pod IP; and `curl **************** returns 200 while the same request to the pod IP is refused (curl exit 7), which is exactly what kubelet reported: "Liveness probe failed: dial tcp 10.42.0.47:10000: connect: connection refused". So the probe failed on every attempt and the kubelet killed the container every cycle: initialDelaySeconds 900 + failureThreshold 80 x periodSeconds 30 = 3300s, matching the observed restart period of 55m14s and 920 restarts / 35 days (~one per 54.7 min). Each kill ran the preStop `nodetool drain`, so it exited 0 / "Completed" and looked like a clean shutdown rather than a crash. The earlier 900s/80 values were not cold-start tuning as the comment claimed — they were masking this. They only stretched the kill cycle; the prior 60s/6 values produced a restart every ~4 min (~360/day). Fix: probe the API where it actually listens, via exec against 127.0.0.1, and restore a meaningful threshold (6 x 30s = 3 min). startupProbe already gates liveness until CQL is up, so initialDelaySeconds is unnecessary. Deliberately not setting --api-address 0.0.0.0, which would expose the unauthenticated admin REST API to the pod network.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing