K8s Troubleshooting
前言 最近在本地虚拟机环境(CentOS 7)搭建 Kubernetes 集群运行微服务 Demo 时,遇到一个非常诡异的“灵异事件”。 起因:由于宿主机休眠,我挂起(Suspend)了一段时间虚拟机。 现象:恢复运行后,集群状态看起来一切正常(Node Ready,Pod Running),但访问 NodePort 暴露的服务时,直接报 502 Bad Gateway。 排查过程极其曲折,从 HTTP 协议一路查到 Linux 内核参数,最终发现是操作系统在网络重置时的“安全机制”坑了 Kubernetes。本文记录了完整的排查思路,希望能帮大家避坑。 🕵️♂️ 第一阶段:表象排查(Application Layer) 首先,我尝试访问前端服务: BASHcurl -I http://192.168.6.141:30007/ # HTTP/1.1 502 Bad Gateway 初步分析: 502 通常意味着网关(Service/Kube-proxy)找不到后端 Pod,或者连接被拒绝。 检查 Pod 状态:kubectl get pods -A 显示所有 Pod 均为 Running 且 Ready (1/1)。应用没挂。 检查 Service 关联:kubectl get ep frontend 显示 Endpoints 存在且 IP 正确(如 10.244.104.23:8080)。 看日志:查看 Frontend Pod 日志,没有报错,甚至显示 Server started。 奇怪点:应用活着,配置没动过,重启前好好的,恢复后就断了。 ...