kubernetes Roadmap
Kubernetes 排障专题
Kubernetes 排障专题:聚合 kubectl 命令、Pod Pending 与 CrashLoopBackOff、ImagePullBackOff、Service 无 endpoints、Ingress 502、探针失败重启和 Prometheus target down 等 K8s 现场问题的完整排障路径。
Kubernetes 排障从 kubectl get/describe/logs/events 四板斧进入,再按调度、镜像拉取、探针配置、Service/Ingress 网络链路和 ConfigMap/Secret 配置分层定位,避免在错误层面反复重建 Pod。
Troubleshooting Path
推荐排障路线图
- 01
先看资源状态和事件
kubectl get/describe/events 是入口,先确认 Pending、CrashLoop、ImagePullBackOff 等状态。
- 02
再看容器日志和上次崩溃
CrashLoop 必看 logs --previous,结合退出码判断是应用、探针还是配置问题。
- 03
继续检查 Service / Ingress 链路
按 Pod IP、Endpoints、Service、Ingress、Controller 日志逐层验证。
- 04
最后核对资源、镜像和配置
确认 requests/limits、imagePullSecrets、ConfigMap、Secret 和探针参数。
Common Issues
高频问题入口
Before You Change
执行前检查
- 操作前确认 kubectl context 和 namespace
- 删除 Pod 前确认由控制器托管
- 修改探针前保留原始 YAML
- 排查网络时同时看 endpoints 和 ingress controller 日志
Start Here
优先阅读
Kubernetes Ingress 404/502 排查流程
Kubernetes Ingress 返回 404 或 502 时,用 curl -H Host 精确复现路由,再 kubectl describe ingress 检查 rules/pathType/IngressClass,404 多为 host 或 path 没命中,502 多为 Service Endpoints 为空或 targetPort、Pod readiness 有问题。
排障Kubernetes ImagePullBackOff 排查流程
Kubernetes Pod 卡在 ImagePullBackOff/ErrImagePull 时,kubectl describe pod 读取 Events 里 Failed to pull image 的完整错误,逐个排查镜像 tag 是否存在、私有仓库 imagePullSecrets 是否引用、节点到 Registry 网络、以及多架构镜像 manifest 是否匹配当前节点。
排障Kubernetes Pod CrashLoopBackOff 排查流程
Kubernetes Pod 陷入 CrashLoopBackOff、Back-off restarting failed container 时,用 kubectl logs --previous 读取上一轮崩溃日志,kubectl describe pod 看 Last State/Exit Code/OOMKilled,逐个排查应用启动错误、liveness 探针误杀、ConfigMap/Secret 挂载缺失和内存限制。
排障Kubernetes Service 访问不通排查
Kubernetes Service 通过 ClusterIP/NodePort 访问不通时,先 kubectl get endpoints 看是否为空——空则是 selector 与 Pod labels 不匹配,有值再核对 targetPort、Pod readiness 和 NetworkPolicy,最后用 busybox nslookup 验证集群 DNS 是否解析 svc.cluster.local。
Latest Updates
最近更新
All Runbooks
全部相关内容
Kubernetes Ingress 404/502 排查流程
Kubernetes Ingress 返回 404 或 502 时,用 curl -H Host 精确复现路由,再 kubectl describe ingress 检查 rules/pathType/IngressClass,404 多为 host 或 path 没命中,502 多为 Service Endpoints 为空或 targetPort、Pod readiness 有问题。
排障Kubernetes ImagePullBackOff 排查流程
Kubernetes Pod 卡在 ImagePullBackOff/ErrImagePull 时,kubectl describe pod 读取 Events 里 Failed to pull image 的完整错误,逐个排查镜像 tag 是否存在、私有仓库 imagePullSecrets 是否引用、节点到 Registry 网络、以及多架构镜像 manifest 是否匹配当前节点。
排障Kubernetes Pod CrashLoopBackOff 排查流程
Kubernetes Pod 陷入 CrashLoopBackOff、Back-off restarting failed container 时,用 kubectl logs --previous 读取上一轮崩溃日志,kubectl describe pod 看 Last State/Exit Code/OOMKilled,逐个排查应用启动错误、liveness 探针误杀、ConfigMap/Secret 挂载缺失和内存限制。
排障Kubernetes Service 访问不通排查
Kubernetes Service 通过 ClusterIP/NodePort 访问不通时,先 kubectl get endpoints 看是否为空——空则是 selector 与 Pod labels 不匹配,有值再核对 targetPort、Pod readiness 和 NetworkPolicy,最后用 busybox nslookup 验证集群 DNS 是否解析 svc.cluster.local。
排障Prometheus Target Down 排查流程
Prometheus Targets 页面显示 down、context deadline exceeded 或 connection refused 时,先看 Last Error,从 Prometheus 所在网络位置 curl 目标 /metrics,Kubernetes 场景检查 ServiceMonitor 的 selector 与 namespaceSelector 是否匹配 Service labels 和端口名。
命令kubectl 排查 Pod 状态常用命令
kubectl 排查 Pod 异常的核心命令组合,kubectl get pod 看状态与重启次数、describe pod 看调度/拉镜像/探针/OOM 事件、logs --tail=200 读近期日志,CrashLoopBackOff 场景加 --previous 读上一轮崩溃日志,exec -it 进容器复现问题。
命令kubectl 排查 Service 和 Ingress 命令
kubectl 排查 Kubernetes Service 与 Ingress 路由不通的常用命令,kubectl get svc,endpoints 看 endpoints 是否为空判断 selector 是否匹配,describe ingress 看 rules 和 IngressClass,用 curl -H Host 复现入口路由并核对 targetPort 与容器端口。
命令Prometheus 配置检查和 Target 排查命令
Prometheus 配置校验和 target 排查的常用命令,promtool check config 排除 prometheus.yml 语法错误,从 Prometheus 所在网络位置 curl target /metrics 复现抓取,Kubernetes 场景 kubectl describe servicemonitor 检查 selector 和端口名匹配。