Kubernetes

K8s 发布故障排查

·3 分钟阅读·954 字

K8s 发布过程中常见故障排查:Pod 卡住、流量不切、Endpoint 不更新、kube-proxy 异常

📋 目录

K8s 发布故障排查

📖 现象汇总

  1. Deployment 滚动停滞,新 Pod 起了但旧 Pod 不删除
  2. 新 Pod 就绪,但 Endpoint 列表没有新 IP,旧 IP 还在
  3. kube-proxy 规则没刷新,流量仍旧全打旧 Pod
  4. 反复创建销毁 Pod、发布卡死

⚡ 分层排查顺序

Pod 就绪 → Endpoint → kube-proxy → 探针配置 → 发布参数

第一层:Pod 是否真正 Ready

kubectl get pod -n <ns>
kubectl describe pod <new-pod>

常见异常:

  • readinessProbe 失败(应用启动慢、健康检查路径错误)
  • 资源不足(CPU/Memory 限额不够)
  • 镜像拉取失败(ImagePullBackOffErrImagePull

第二层: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 详解 — 七层灰度发布

关联文档