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

解决通过Ingress和Minikube访问Kubernetes Dashboard失败的问题

解决Minikube Ingress暴露Kubernetes Dashboard的问题

从你的配置和测试结果来看,主要有几个关键配置错误或遗漏,我来一步步帮你排查修复:

1. 修复Hosts文件的核心错误

你当前的hosts文件把dashboard.com指向了127.0.0.1,但你的Ingress LoadBalancer IP是Minikube节点的192.168.49.2,这直接导致curl请求先尝试本地端口80失败,随后解析到公网的dashboard.com域名,出现了301跳转的异常结果。

修复步骤:

  • 打开终端,用管理员权限编辑hosts文件:
    sudo nano /etc/hosts
    
  • 找到错误的配置行:
    127.0.0.1 dashboard.com
    
  • 修改为正确的Minikube节点IP:
    192.168.49.2 dashboard.com
    
  • 保存退出(按Ctrl+O确认写入,回车后按Ctrl+X退出)
  • 刷新Mac的DNS缓存,确保修改立即生效:
    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
    

2. 确认Nginx Ingress Controller已正确启用并运行

Minikube不会默认启用Ingress插件,必须手动开启才能让Ingress资源生效:

  • 先检查插件状态:
    minikube addons list
    
  • 如果ingress插件显示为disabled,执行启用命令:
    minikube addons enable ingress
    
  • 等待Ingress Controller的Pod启动完成,验证运行状态:
    kubectl get pods -n kube-system | grep nginx-ingress
    
    确保输出中的Pod状态为Running

3. 修正Ingress与Dashboard Service的端口匹配

Kubernetes Dashboard的默认Service暴露的是443端口(HTTPS),但你的Ingress配置中错误地指向了Service的80端口,这会导致请求无法正确转发到Dashboard服务。

调整步骤:

  • 先确认Dashboard Service的端口配置:
    kubectl get svc kubernetes-dashboard -n kubernetes-dashboard
    
    正常输出应该类似:
    NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
    kubernetes-dashboard   ClusterIP   10.96.xxx.xxx   <none>        443/TCP         1d
    
  • 创建新的Ingress配置文件dashboard-ingress.yaml,修正端口:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: dashboard-ingress
      namespace: kubernetes-dashboard
      labels:
        name: dashboard-ingress
    spec:
      ingressClassName: nginx
      rules:
      - host: dashboard.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kubernetes-dashboard
                port:
                  number: 443
    
  • 应用修正后的配置:
    kubectl apply -f dashboard-ingress.yaml
    

4. 验证Ingress资源状态

  • 查看Ingress的基本信息,确认地址正确:
    kubectl get ingress dashboard-ingress -n kubernetes-dashboard
    
    确保ADDRESS字段显示为192.168.49.2
  • 查看Ingress的详细事件,排查是否有配置错误:
    kubectl describe ingress dashboard-ingress -n kubernetes-dashboard
    
    检查Events部分,确保没有报错信息

5. 测试访问

完成以上配置后,用curl测试(加上-k忽略自签名证书的警告):

curl -k https://dashboard.com

或者直接在浏览器中访问https://dashboard.com,接受证书警告后即可进入Dashboard的登录界面。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:40:16