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

Kubernetes集群通过Nginx Ingress暴露Grafana服务无法访问问题求助

排查与修复步骤

  • Ingress规则未被控制器同步
    kubectl get ingress结果中CLASS字段为<none>,当前版本Nginx Ingress控制器默认不处理未指定ingressClassName的Ingress资源。在Ingress YAML的spec层级添加配置:

    spec:
      ingressClassName: nginx # Helm安装的Nginx Ingress默认类名为nginx
    

    也可修改控制器启动参数添加--watch-ingress-without-class=true,让其默认处理所有无类的Ingress资源。

  • Grafana Service配置冲突
    你编写的Grafana Service YAML手动指定clusterIP: 10.7.2.57,但实际查询到的Grafana ClusterIP为10.7.2.55,说明手动指定IP无效。删除Service YAML中的clusterIP行后重新apply,由集群自动分配IP。

  • 访问方式错误
    你的Nginx Ingress控制器为NodePort类型,无外部LoadBalancer,Ingress返回的ADDRESS 10.7.0.5为集群内部地址,无法直接对外访问:

    1. 对外访问使用集群任意节点IP + Nginx http NodePort 32665
    2. 你的Ingress配置了host: test.grafana.com,需要在访问端hosts文件添加记录:节点IP test.grafana.com,或测试时指定Host头:
    curl -H "Host: test.grafana.com" http://<集群节点IP>:32665
    

    无需绑定域名可直接删除Ingress规则中的host字段,即可通过IP+端口直接访问。

  • 连通性验证

    1. 验证规则是否加载:
    kubectl exec -n ingress-nginx ingress-nginx-controller-57ffff5864-rw57w -- cat /etc/nginx/nginx.conf | grep test.grafana.com
    

    无输出说明规则未同步,回到Ingress类配置步骤排查。
    2. 验证控制器到Grafana的连通性:

    kubectl exec -n ingress-nginx ingress-nginx-controller-57ffff5864-rw57w -- curl http://grafana.default.svc.cluster.local:3000
    

    访问失败需检查集群网络策略,确认ingress-nginx命名空间可访问default命名空间的服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:04