Skip to content

❌ 注意

从现象识别到问题定位,再到深入排查与解决方案制定,形成一套完整的问题解决闭环

1.问题导向&排查

1.1 网络诊断

  • 连通性测试:使用 pingnctelnet 等工具测试 Pod 间的网络连通性,或通过 curl 检查服务端口是否可达。
  • NetworkPolicy 检查:确认 NetworkPolicy 规则是否过于严格导致通信阻断,使用 kubectl get netpol 查看并分析现有策略。
  • CNI 插件排查:检查 CNI 插件(如 Calico、Flannel 等)的日志,排查网络配置或插件自身问题。

1.2 存储问题排查

  • PVC/PV 状态检查:使用 kubectl get pvc,pv 查看 PersistentVolumeClaim 和 PersistentVolume 的绑定状态与容量,确认是否存在未绑定、容量不足等问题。
  • 存储日志与事件:检查存储插件(如 Local Volume、CSI Driver 等)日志,以及 PVC/PV 的事件信息,查找存储访问异常。
  • 数据完整性验证:必要时,直接在宿主机上挂载存储卷,检查数据完整性和一致性

1.3 资源调度与亲和性问题

  • 节点资源分析:使用 kubectl top nodes 查看节点资源使用情况,判断是否存在资源瓶颈。
  • 调度策略检查:确认 Deployments、StatefulSets 等资源的 .spec.template.spec.nodeSelector.spec.affinity.spec.tolerations 等调度相关字段配置,看是否限制了 Pod 的调度范围。
  • kube-scheduler 日志:分析 kube-scheduler 日志,了解调度决策过程,找出影响调度的因素

1.4 认证授权与访问控制

  • RBAC 规则审查:使用 kubectl get rolebindings,clusterrolebindings 检查角色绑定关系,确保用户或服务账户具有正确的 API 访问权限。
  • API Server 访问日志:分析 kube-apiserver-audit.log,跟踪特定用户或账户的 API 请求与响应,排查授权问题。
  • 网络代理与认证配置:检查 kubeconfig 文件、API Server 配置及网络代理(如 kube-proxy、ingress-nginx 等)的认证设置,确保访问路径无误