<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Kubernetes on 我的技术博客</title><link>https://buvidk1234.github.io/tags/kubernetes/</link><description>Recent content in Kubernetes on 我的技术博客</description><generator>Hugo -- 0.153.0</generator><language>zh-cn</language><lastBuildDate>Tue, 23 Dec 2025 00:44:39 +0800</lastBuildDate><atom:link href="https://buvidk1234.github.io/tags/kubernetes/index.xml" rel="self" type="application/rss+xml"/><item><title>K8s Troubleshooting</title><link>https://buvidk1234.github.io/posts/k8s-troubleshooting/</link><pubDate>Tue, 23 Dec 2025 00:44:39 +0800</pubDate><guid>https://buvidk1234.github.io/posts/k8s-troubleshooting/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;最近在本地虚拟机环境（CentOS 7）搭建 Kubernetes 集群运行微服务 Demo 时，遇到一个非常诡异的“灵异事件”。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;起因&lt;/strong&gt;：由于宿主机休眠，我挂起（Suspend）了一段时间虚拟机。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：恢复运行后，集群状态看起来一切正常（Node Ready，Pod Running），但访问 NodePort 暴露的服务时，直接报 &lt;code&gt;502 Bad Gateway&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;排查过程极其曲折，从 HTTP 协议一路查到 Linux 内核参数，最终发现是操作系统在网络重置时的“安全机制”坑了 Kubernetes。本文记录了完整的排查思路，希望能帮大家避坑。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-第一阶段表象排查application-layer"&gt;🕵️‍♂️ 第一阶段：表象排查（Application Layer）&lt;/h2&gt;
&lt;p&gt;首先，我尝试访问前端服务：&lt;/p&gt;
&lt;details class="code-fold" open&gt;
&lt;summary&gt;BASH&lt;/summary&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -I http://192.168.6.141:30007/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# HTTP/1.1 502 Bad Gateway&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;初步分析&lt;/strong&gt;：
&lt;code&gt;502&lt;/code&gt; 通常意味着网关（Service/Kube-proxy）找不到后端 Pod，或者连接被拒绝。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;检查 Pod 状态&lt;/strong&gt;：&lt;code&gt;kubectl get pods -A&lt;/code&gt; 显示所有 Pod 均为 &lt;code&gt;Running&lt;/code&gt; 且 &lt;code&gt;Ready (1/1)&lt;/code&gt;。应用没挂。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检查 Service 关联&lt;/strong&gt;：&lt;code&gt;kubectl get ep frontend&lt;/code&gt; 显示 Endpoints 存在且 IP 正确（如 &lt;code&gt;10.244.104.23:8080&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;看日志&lt;/strong&gt;：查看 Frontend Pod 日志，没有报错，甚至显示 &lt;code&gt;Server started&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;奇怪点&lt;/strong&gt;：应用活着，配置没动过，重启前好好的，恢复后就断了。&lt;/p&gt;</description></item></channel></rss>