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

无法通过Ingress访问Kubernetes Dashboard问题求助

Kubernetes Dashboard 外部Ingress访问报错"Client sent an HTTP request to an HTTPS server"排查思路

针对你遇到的外部访问报错问题,结合Ingress配置和集群内外访问差异,给出以下排查方向:

1. 确认Ingress Controller的SSL Passthrough功能已启用

你在Ingress中使用了nginx.ingress.kubernetes.io/ssl-passthrough: "true"注解,但该功能需要Ingress Controller启动时显式开启对应的参数:

  • 执行命令检查Ingress Controller Pod的启动参数:
    kubectl describe pod <nginx-ingress-controller-pod-name> -n <ingress-controller-namespace>
    
  • 查看Args字段是否包含--enable-ssl-passthrough,如果没有,需修改Controller的Deployment/DaemonSet配置,添加该启动参数后重启Pod。

2. 清理冲突的Ingress注解

当前配置中同时存在backend-protocol: "HTTPS"和ssl-passthrough: "true",两者存在冲突:

  • SSL Passthrough模式下,Ingress Controller会直接将SSL流量透传给后端服务,不会终止或解析HTTPS请求,此时backend-protocol注解完全无效,反而可能导致配置逻辑混乱。
  • 建议删除nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"注解,重新应用Ingress配置:
    kubectl apply -f <your-ingress-yaml-file>
    

3. 验证TLS证书与Ingress状态

  • 执行命令查看Ingress的状态:
    kubectl get ingress kubernetes-dashboard-nginx-ingress -n kubernetes-dashboard
    
    确认ADDRESS字段已正确关联Ingress Controller的入口地址,TLS字段显示对应域名。
  • 检查默认Wildcard证书是否存在于kubernetes-dashboard命名空间,或Ingress Controller是否配置了全局默认证书:
    kubectl get secrets -n kubernetes-dashboard
    
    若依赖全局证书,需确认Ingress Controller的配置中已指定全局证书的Secret名称。

4. 排查外部流量的端口映射

外部访问出现该错误,大概率是流量实际走了HTTP端口(80)但你用https://发起请求,需验证:

  • 检查集群入口的端口映射:确认外部访问的443端口已正确转发到Ingress Controller的443端口(而非80端口)。
  • 用curl -v https://k8s-dashboard.<myDomain>/查看详细请求日志,确认连接的端口是否为443,以及服务器返回的响应细节。
  • 测试端口连通性:
    telnet k8s-dashboard.<myDomain> 443
    
    若不通,排查防火墙规则、云厂商负载均衡配置、NodePort的端口暴露策略。

5. 隔离测试验证Ingress基础功能

为排除Dashboard服务本身的问题,可临时创建一个简单的HTTPS测试服务,复用相同的Ingress配置逻辑:

  1. 创建一个带自签证书的Nginx服务(部署在测试命名空间)
  2. 配置相同的SSL Passthrough Ingress规则
  3. 测试外部访问是否正常,若正常则问题出在Dashboard的服务配置或证书信任问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:32:27