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

从本地访问远程Kubernetes Dashboard遇无法访问及连接问题求助

让我一步步帮你排查这两个问题:

问题1:kubectl proxy 无法从外部访问

你在Jenkins控制VM里运行kubectl proxy时,默认它只监听127.0.0.1,这意味着只有VM本机能访问这个代理端口,你的本地笔记本属于外部机器,自然连不上。此外你访问的URL里还写错了namespace——Dashboard默认部署在kubernetes-dashboard而非kube-system,这也是一个隐形坑。

解决方法是启动proxy时指定允许外部访问的参数:

kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'
  • --address='0.0.0.0':让proxy监听所有网卡,而非仅本地回环地址
  • --accept-hosts='^*$':允许任意主机头的请求访问,避免跨域或主机校验失败

之后用本地笔记本访问修正后的URL:http://192.168.16.170:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/,就能正常加载登录页面了。

问题2:NodePort方式出现“your connection is not private”

这个是Kubernetes Dashboard默认配置的自签名SSL证书导致的——浏览器不信任这种未被权威CA机构签发的证书,所以弹出安全警告。你有几种处理方式:

方式1:临时跳过浏览器安全校验(仅测试环境可用)

  • Chrome类浏览器:在警告页面直接输入thisisunsafe(键盘直接输入,不会显示在页面上),就能强制进入Dashboard。
  • Firefox:点击“高级”→“接受风险并继续”。

方式2:导入Dashboard的自签名证书到浏览器(更规范)

  1. 从集群中导出Dashboard的证书:
# 获取Dashboard的证书secret名称
kubectl get secret -n kubernetes-dashboard | grep kubernetes-dashboard-certs
# 导出证书内容到本地文件
kubectl get secret <secret-name> -n kubernetes-dashboard -o jsonpath='{.data.tls\.crt}' | base64 -d > dashboard.crt
  1. 将导出的dashboard.crt文件导入本地浏览器的“受信任根证书颁发机构”列表,重启浏览器后访问就不会再出现警告。

方式3:替换为自定义可信证书(生产环境推荐)

如果你有自己的SSL证书(比如Let's Encrypt签发的),可以创建新的Secret替换Dashboard默认证书:

# 创建包含自定义证书的Secret
kubectl create secret generic kubernetes-dashboard-certs --from-file=tls.crt=your-cert.crt --from-file=tls.key=your-cert.key -n kubernetes-dashboard
# 重启Dashboard Pod,让它加载新证书
kubectl delete pod -n kubernetes-dashboard -l k8s-app=kubernetes-dashboard

另外补充:用NodePort访问时,要先确认端口号——通过kubectl get svc kubernetes-dashboard -n kubernetes-dashboard找到PORT(S)列的NodePort(比如30000),然后访问https://<集群节点IP>:<NodePort>,注意必须用HTTPS协议,否则也会出现访问错误。

内容的提问来源于stack exchange,提问作者Mr.DevEng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:04:30