kubectl:The connection to the server localhost:8080 was refused - did you specify the right host or port?

安装完kubeadmin 之后,执行kubectl,出现以下错误:

1
The connection to the server localhost:8080 was refused - did you specify the right host or port?

原因是,没有设置环境变量 KUBECONFIG, 对于这一点,包括官方文档上都写的不清楚。

没有这个环境变量来指定kubectl去连接API-Server,这时,kubectl使用默认的地址,就是localhost:8080来连接API server,导致出现连接被拒绝。

解决方案:

root用户

root用户可以直接设置KUBECONFIG/etc/kubernetes/admin.conf,命令如下:

1
export KUBECONFIG=/etc/kubernetes/admin.conf

或者可以在.profile中设置,以防再次登录失效。

非root用户

首先,copy系统的配置文件:

1
2
3
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config

其次,设置环境变量KUBECONFIG

修改 $HOME/.profile,增加:

1
export KUBECONFIG=$HOME/.kube/config

执行 kubectl get pod,就ok了