It's 2:47 AM. The pod says Running. The logs are clean, no stack trace, no red text, nothing you can grep. kubectl get pods shows 1/1. Everything about this deployment is, technically, fine.
Except the service is down.
You curl it from your laptop and get a timeout. You curl it from inside the cluster and get connection refused. You exec into the pod and the process is sitting right there, listening, apparently healthy. You built this exact image, ran it locally three hours ago with docker run, and it worked the first try. Nothing in the code changed between then and now. Only the environment did.
Quick side note before I get into it. The last three months for me have mostly happened inside a terminal, laptop and, more often than I expected, mobile through Termux. I've been heads down on Arbythecoder and The Mobile Prof, DevOps and Linux work, testing how much of a real workflow actually holds up on a phone. Somewhere in there I also started looking seriously at contributing to the Kubernetes docs, mapping out where a first PR might realistically land. This isn't a topic I picked because it sounded good for engagement. It's the thing that's been living in my terminal tabs for weeks.
If you've shipped anything to Kubernetes, you already know the 2:47 AM moment above. And if you've googled your way out of it, you've read some version of the same article a dozen times: bind to 0.0.0.0 instead of 127.0.0.1, add a readiness probe, stop using localhost, check your ConfigMap. It's all correct advice. None of it sticks though, because it's a list of symptoms dressed up as an explanation.






