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

通过Nginx Ingress 80端口访问Prometheus Web UI失败如何解决

问题根因

你当前使用的是NGINX官方发布的Ingress Controller(非Kubernetes社区维护的ingress-nginx版本),路径匹配规则和社区版存在差异,你配置的path: /* + pathType: Prefix 无法正确匹配请求,导致所有访问请求落到了NGINX的默认后端,返回默认欢迎页。

解决方案

1. 修改Ingress资源配置

将你的ingress-resource.yaml替换为以下内容:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ui
  namespace: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: prometheus-service
            port:
              number: 80

如果你需要保留通配符写法,也可以改为以下配置,效果一致:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ui
  namespace: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - http:
      paths:
      - path: /*
        pathType: ImplementationSpecific
        backend:
          service:
            name: prometheus-service
            port:
              number: 80

2. 重新应用配置

执行以下命令更新Ingress规则:

kubectl apply -f ingress-resource.yaml

3. 验证生效

等待10秒左右执行命令检查Ingress状态,确认无报错:

kubectl describe ingress prometheus-ui -n nginx-ingress

之后直接访问云服务器公网IP即可打开Prometheus界面。

异常排查

如果修改后仍然无法访问,可按以下步骤排查:

  • 验证Prometheus服务本身可用性:在集群内节点执行curl 10.233.29.33,确认能正常返回Prometheus页面内容
  • 查看Ingress Controller日志确认规则加载情况:kubectl logs -n nginx-ingress <你的nginx-ingress-pod名称>,检查是否有Ingress配置加载错误的提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:54:03