k8s:The connection to the server localhost:8080 was refused - did you specify the right host or port?
前言
k8s 集群 node节点报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?
通过 kubectl get nodes
查看集群的情况,出现了报错,内容如下:
$ kubectl get pod
E0529 02:28:59.776677 415799 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0529 02:28:59.777439 415799 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0529 02:28:59.778983 415799 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0529 02:28:59.780888 415799 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0529 02:28:59.782303 415799 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
The connection to the server localhost:8080 was refused - did you specify the right host or port?
原因:
kubectl
默认从 ~/.kube/config
配置文件获取访问 kube-apiserver
地址、证书、用户名等信息,如果没有配置该文件会读取默值,即 localhost:8080
,而本机的 localhost:8080
没有服务因而报 The connection to the server localhost:8080 was refused - did you specify the right host or port?
解决
先检查当前 kubectl
配置加载信息,kubectl config view
,如果为空需要检查 /etc/kubernetes/admin.conf
配置文件和 $HOME/.kube/config
配置,如果不存在,需要复制master节点上的配置到当前节点上
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
指定配置文件路径
如果你的配置文件不在默认路径,可以通过 KUBECONFIG
环境变量指定路径,或者在命令行中使用 --kubeconfig
选项。
使用 KUBECONFIG 环境变量
export KUBECONFIG=/path/to/your/kubeconfig
kubectl config view
使用 --kubeconfig 选项
kubectl --kubeconfig=/etc/kubernetes/admin.conf config view