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

本地PC连接Ubuntu主机被拒 SSH登录Rancher后kubectl执行报错求助

W0916 17:12:03.995526 4990 loader.go:221] Config not found: /root/admin.conf
The connection to the server localhost:8080 was refused - did you specify the right host or port?

问题根因
  • 你通过SSH登录Rancher服务器时使用的是普通用户,默认无权限读取/root目录下的admin.conf配置文件,kubectl加载配置失败后会回退到默认的localhost:8080访问地址,该地址没有部署K8s apiserver,因此连接被拒绝。
  • 未配置KUBECONFIG环境变量,也未将K8s配置文件放到kubectl默认读取的~/.kube/config路径下。
解决方案

方案1:永久生效(推荐,安全性更高)

  • 先创建kubectl默认读取配置的目录:mkdir -p ~/.kube
  • 将root目录下的配置文件复制到当前用户目录:sudo cp /root/admin.conf ~/.kube/config
  • 给当前用户授予配置文件的所有权:sudo chown $(id -u):$(id -g) ~/.kube/config
  • 执行kubectl get pods验证功能是否正常,后续该用户登录无需重复操作。

方案2:环境变量配置

  • 把配置文件路径写入当前用户的环境变量配置文件,使用bash的用户执行:echo 'export KUBECONFIG=/root/admin.conf' >> ~/.bashrc;使用zsh的用户执行:echo 'export KUBECONFIG=/root/admin.conf' >> ~/.zshrc
  • 刷新环境变量:source ~/.bashrc(zsh用户对应执行source ~/.zshrc)
  • 给普通用户开放配置文件的读取权限:sudo chmod +r /root/admin.conf

方案3:临时指定配置(单次命令生效)

如果仅需临时执行少量kubectl命令,可以直接在命令中指定配置文件路径:
kubectl --kubeconfig=/root/admin.conf get pods

异常排查

如果完成上述操作后仍报错,执行以下步骤排查:

  • 执行kubectl config view检查输出的server地址是否为你K8s集群apiserver的正确地址
  • 确认Rancher服务器到K8s apiserver地址的网络连通性,对应端口未被防火墙、安全组拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:24:01