<?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>Troubleshooting on 维克的博客</title><link>https://blogs.wuvikr.top/tags/troubleshooting/</link><description>Recent content in Troubleshooting on 维克的博客</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 12 Sep 2026 15:51:54 +0800</lastBuildDate><atom:link href="https://blogs.wuvikr.top/tags/troubleshooting/index.xml" rel="self" type="application/rss+xml"/><item><title>Pod 网络故障排查</title><link>https://blogs.wuvikr.top/posts/pod%E7%BD%91%E7%BB%9C%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5/</link><pubDate>Sat, 12 Sep 2026 15:51:54 +0800</pubDate><guid>https://blogs.wuvikr.top/posts/pod%E7%BD%91%E7%BB%9C%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5/</guid><description>&lt;p>Kubernetes 的网络是一个多层虚拟网络体系，流量从客户端到后端 Pod 的路径涉及多个组件。排查网络问题时，如果&amp;quot;东戳一下西戳一下&amp;quot;没有章法，可能需要耗费大量时间。如何最快的定位网络问题的根源？记住常见的具体现象和应对办法，遵循&lt;strong>从内到外&lt;/strong>的原则（先确认&amp;quot;自己没问题&amp;quot;，再确认&amp;quot;中间没问题&amp;quot;，最后确认&amp;quot;外面没问题&amp;quot;）或许能够帮你节约大量的时间，。&lt;/p>
&lt;p>下面按照从&lt;strong>具体访问现象&lt;/strong>出发的思路，由浅入深展开。&lt;/p>
&lt;hr>
&lt;h1 id="1-第一层pod-自身状态确认">1. 第一层：Pod 自身状态确认&lt;/h1>
&lt;p>&lt;strong>现象：Pod 完全无法访问，任何请求都无响应&lt;/strong>
这是最基础的一层。在排查任何网络问题之前，先确认 Pod 本身是否健康运行。&lt;/p>
&lt;h2 id="11-检查-pod-状态">1.1 检查 Pod 状态&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl get pods -o wide
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>关注以下状态：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>状态&lt;/th>
&lt;th>含义&lt;/th>
&lt;th>可能原因&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>Running&lt;/code>&lt;/td>
&lt;td>正常运行&lt;/td>
&lt;td>正常&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Pending&lt;/code>&lt;/td>
&lt;td>等待调度&lt;/td>
&lt;td>资源不足、节点亲和性不匹配&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>CrashLoopBackOff&lt;/code>&lt;/td>
&lt;td>反复崩溃重启&lt;/td>
&lt;td>应用启动失败、配置错误&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>OOMKilled&lt;/code>&lt;/td>
&lt;td>内存超限被杀&lt;/td>
&lt;td>&lt;code>resources.limits.memory&lt;/code> 设置过低&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>ImagePullBackOff&lt;/code>&lt;/td>
&lt;td>镜像拉取失败&lt;/td>
&lt;td>镜像名错误、仓库认证失败&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>ContainerCreating&lt;/code>&lt;/td>
&lt;td>容器创建中&lt;/td>
&lt;td>CNI 插件分配 IP 失败、存储卷挂载失败&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>如果 Pod 不在 &lt;code>Running&lt;/code> 状态，网络问题只是表象，根因在 Pod 本身：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看 Pod 详细事件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl describe pod &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看容器日志（如果容器曾启动过）&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl logs &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看前一个崩溃容器的日志&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl logs &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt; --previous
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="12-确认-pod-有-ip-地址">1.2 确认 Pod 有 IP 地址&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl get pods -o wide
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果 Pod 状态是 &lt;code>Running&lt;/code> 但 &lt;strong>IP 为空&lt;/strong>，说明 CNI 插件没有成功分配 IP。此时需要检查：&lt;/p></description></item></channel></rss>