You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s新增Worker节点后Prometheus运行报Context Deadline错误问题

Prometheus调度到K8S Worker节点后访问超时排查方案

排查步骤

1. 检测Worker节点外部网络连通性

  • 首先从访问端ping Worker节点IP,确认基础网络可达:ping <worker-node-ip>
  • 使用nc工具检测Prometheus暴露端口是否开放,若为NodePort暴露请替换为你配置的NodePort端口:nc -zv <worker-node-ip> <prometheus-expose-port>
  • 检查Worker节点本地防火墙规则,确认对应端口允许入站:
    • firewalld环境执行:firewall-cmd --list-all
    • 若端口未放开,执行添加规则后重载:firewall-cmd --add-port=<端口号>/tcp --permanent && firewall-cmd --reload
  • 若为云服务器部署的集群,额外检查云平台安全组规则,确认Worker节点对应端口的入站权限已放开。

2. 确认Prometheus Pod本身运行状态

  • 查看Pod状态确认无异常重启,调度位置正确:kubectl get pods -n <prometheus所在命名空间> -o wide,确认STATUS为Running
  • 查看Pod运行日志,排查是否有配置加载失败、权限报错等问题:kubectl logs -n <prometheus所在命名空间> <prometheus-pod名称>
  • 进入Pod内部检测服务自身可用性:kubectl exec -it -n <prometheus所在命名空间> <prometheus-pod名称> -- curl 127.0.0.1:9090/targets
    如果内部访问正常,说明Prometheus服务本身无问题,问题出在外部到Pod的网络链路上

3. 排查K8S集群网络与访问规则问题

  • 确认集群网络插件(Flannel/Calico等)在Worker节点上的运行状态:kubectl get pods -n kube-system | grep <网络插件名称>,所有相关Pod需为Running状态
  • 排查Worker节点CNI配置异常:登录Worker节点查看/etc/cni/net.d/下配置是否正确,查看kubelet日志排查CNI相关报错:journalctl -u kubelet -f | grep cni
  • 检测集群内部连通性:在Master节点直接curl Prometheus的PodIP:9090/targets,若无法访问说明集群内部网络链路故障
  • 检查对应命名空间下是否有限制访问的NetworkPolicy:kubectl get networkpolicy -n <prometheus所在命名空间>,如有相关规则需确认放开了Prometheus端口的访问权限。

4. 确认Service/Ingress配置正确性

  • 查看Prometheus关联的Service配置,确认selector匹配Prometheus Pod的标签,Endpoints正确关联Pod的IP和端口:kubectl describe svc -n <prometheus所在命名空间> <prometheus-svc名称>
  • 若使用Ingress暴露服务,检查Ingress资源的后端Service配置是否正确,Ingress Controller是否能正常路由到Worker节点上的Prometheus Pod。

如果你使用HostNetwork模式运行Prometheus Pod,还需要检查Worker节点的9090端口是否被其他进程占用:netstat -tulpn | grep 9090


内容的提问来源于stack exchange,提问作者TjS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 12:09:00