Kubernetes执行kubectl命令报错:localhost:8080连接被拒绝
Kubectl连接localhost:8080被拒绝的解决办法
你遇到的错误:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
原因是kubectl默认读取当前用户主目录下~/.kube/config的集群配置文件,你的独立用户没有这个目录及文件,导致kubectl默认尝试连接localhost:8080,而该地址并非你的Kubernetes集群API server地址。
解决步骤:
- 确认系统级kube配置文件路径,通常kubeadm部署的集群路径为
/etc/kubernetes/admin.conf - 为当前用户创建并配置.kube目录:
- 创建用户专属.kube目录:
mkdir -p $HOME/.kube - 复制系统级配置文件到用户目录:
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config - 修改文件权限,确保当前用户可读写:
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 创建用户专属.kube目录:
- 执行
kubectl get nodes验证,正常返回节点信息即为配置成功。
临时方案(仅当前会话有效):
每次执行kubectl命令前先指定配置文件路径:export KUBECONFIG=/etc/kubernetes/admin.conf,之后即可正常执行kubectl命令。
内容的提问来源于stack exchange,提问作者Ruslan Pylypiuk
相关产品推荐
相关产品推荐

