如何高效使用openEuler/service_trainning:新手必备的培训资源导航
2026/7/6 8:26:49
核心是按 “Pod 状态→网络连通→服务配置→依赖组件” 的顺序逐层定位,高效锁定根因:
这是最基础一步,先判断 Pod 是否本身就没跑起来。
kubectl describe pod <Pod名称> -n <命名空间>,重点看Events字段(底部),排查是否有 “拉取镜像失败”“资源不足被驱逐”“健康检查失败” 等错误。kubectl get pods -n <命名空间>,若状态是CrashLoopBackOff(反复崩溃)、ImagePullBackOff(镜像拉取失败),优先解决 Pod 启动问题。若 Pod 状态是Running,需进一步检查容器内的应用是否真的在提供服务。
kubectl exec -it <Pod名称> -n <命名空间> -- /bin/bash(若没有 bash,换sh)。curl localhost:<服务端口>(或wget),若连本地都不通,说明是应用本身故障(如配置错误、进程未启动),与 K8s 调度无关。若内部服务正常,问题通常在网络层面(如 Service 配置、网络插件)。
kubectl describe svc <Service名称> -n <命名空间>,查看Endpoints字段是否包含目标 Pod 的 IP + 端口,若为空,说明 Service 的selector标签与 Pod 不匹配(标签写错是高频问题)。curl <Pod的IP>:<服务端口>,若不通,排查网络插件(如 Calico、Flannel)是否故障;若通,再测集群外访问(如 Ingress 转发是否正常)。若以上都正常,需从依赖和日志找线索。
kubectl logs看 Pod 是否有 “连接超时” 错误)。kubectl logs <Pod名称> -n <命名空间>(加-f实时查看,加--previous看崩溃前日志),从日志中定位代码错误、配置缺失等问题。