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

通过Ingress访问Kubernetes Dashboard出现404 NotFound问题排查

问题排查与修复方案

1. 域名拼写错误(核心问题)

你在/etc/hosts中配置的域名是k8s-dashbaord.com,但Ingress规则里定义的host是k8s-dashboard.com(注意拼写差异:dashbaord少了一个s)。这个拼写错误会导致Ingress无法匹配对应规则,直接返回404。

修复操作:修改/etc/hosts内容为:

192.168.49.2    k8s-dashboard.com

2. 补充Ingress适配注解

Kubernetes Dashboard本身基于HTTPS提供服务,当前Ingress仅配置了backend-protocol: HTTPS,建议添加ssl-passthrough注解,让Ingress Controller直接透传SSL流量到Dashboard服务,避免证书不匹配导致的访问异常。

修改后的Ingress配置YAML:

apiVersion: networking.k8s.io/v1 
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
  name: ingress-dashboard
  namespace: kubernetes-dashboard
spec: 
  rules:
  - host: k8s-dashboard.com
    http:
      paths:
      - pathType: Prefix
        path: /
        backend:
          service:
            name: kubernetes-dashboard
            port: 
              number: 443

执行更新命令:

kubectl apply -f <你的Ingress文件路径>

3. 关于Ingress规则显示Pod IP的说明

你提到Ingress规则里映射的是172.17.0.6:8443而非Service IP,这是正常现象。Ingress Controller最终会将流量转发到后端Service关联的Pod上,所以kubectl describe ingress中显示的是Pod的IP和容器实际监听端口(Dashboard容器监听8443,Service的443端口是转发到该端口),无需担忧。

4. 额外验证步骤

  • 确认Ingress Controller Pod正常运行:
    kubectl get pods -n ingress-nginx
    
    确保所有Pod处于Running状态。
  • 清理浏览器缓存后,通过https://k8s-dashboard.com访问(必须用HTTPS协议)。

内容的提问来源于stack exchange,提问作者Susitha Ravinda Senarath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:01:38