K8s 发布故障排查
📖 现象汇总
- Deployment 滚动停滞,新 Pod 起了但旧 Pod 不删除
- 新 Pod 就绪,但 Endpoint 列表没有新 IP,旧 IP 还在
- kube-proxy 规则没刷新,流量仍旧全打旧 Pod
- 反复创建销毁 Pod、发布卡死
⚡ 分层排查顺序
Pod 就绪 → Endpoint → kube-proxy → 探针配置 → 发布参数
第一层:Pod 是否真正 Ready
kubectl get pod -n <ns>
kubectl describe pod <new-pod>
常见异常:
- readinessProbe 失败(应用启动慢、健康检查路径错误)
- 资源不足(CPU/Memory 限额不够)
- 镜像拉取失败(
ImagePullBackOff、ErrImagePull)
第二层:Endpoint 是否更新
kubectl get ep <svc-name>
kubectl describe ep <svc-name>
常见异常:
- Pod 未 Ready → Endpoint 不加入
- Service selector 与 Pod label 不匹配
- Endpoint 控制器异常
第三层:kube-proxy 规则
## 🔧 iptables 模式
iptables-save | grep <svc-name>
## 🔧 IPVS 模式
ipvsadm -Ln | grep <svc-cluster-ip>
常见异常:
- kube-proxy Pod 异常
- iptables/IPVS 规则未刷新
- 节点内核防火墙拦截
第四层:探针与参数配置
- readinessProbe 阈值过小导致 Pod 频繁进出 Ready
- maxSurge/maxUnavailable 配置不当导致滚动停滞
- PodDisruptionBudget(PDB)阻止驱逐
关联文档
- ../workload/K8s 滚动更新与发布策略 — 发布参数详解
- ../network/kube-proxy 流量转发与代理模式详解 — 流量转发机制
- ../network/K8s Ingress 详解 — 七层灰度发布
关联文档