一、報錯信息
Node節(jié)點中執(zhí)行kubectl get nodes命令,報The connection to the server localhost:8080 was refused - did you specify the right host or port?錯誤。
報錯如下:

報錯
二、原因
kubectl命令需要使用kubernetes-admin來運行,需要admin.conf文件(conf文件是通過“ kubeadmin init”命令在主節(jié)點/etc/kubernetes 中創(chuàng)建),但是從節(jié)點沒有conf文件,也沒有設(shè)置 KUBECONFIG =/root/admin.conf環(huán)境變量,所以需要復(fù)制conf文件到從節(jié)點,并設(shè)置環(huán)境變量就OK了
三、解決方法
- 將Master節(jié)點上的"/etc/kubernetes/admin.conf"拷貝到Node上"/etc/kubernetes/"
- 設(shè)置環(huán)境變量,執(zhí)行已下命令
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile, source ~/.bash_profile
步驟如下:
# 拷貝admin.conf文件,主節(jié)點上執(zhí)行。K8s-Master,K8s-Node1,K8s-Node2需要在/etc/hosts中解析
[root@K8s-Master ~]# scp /etc/kubernetes/admin.conf root@K8s-Node2:/etc/kubernetes/
[root@K8s-Master ~]# scp /etc/kubernetes/admin.conf root@K8s-Node2:/etc/kubernetes/
# 設(shè)置環(huán)境變量,在Node節(jié)點上執(zhí)行。
# Node1
[root@K8s-Node1 ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
[root@K8s-Node1 ~]# source ~/.bash_profile
# Node2
[root@K8s-Node2 ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
[root@K8s-Node2 ~]# source ~/.bash_profile
驗證
在所有節(jié)點上驗證是否生效。
# Node1
[root@K8s-Node1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 2d19h v1.18.8
k8s-node1 Ready <none> 2d19h v1.18.8
k8s-node2 Ready <none> 2d19h v1.18.8
[root@K8s-Node1 ~]#
# Node2
[root@K8s-Node2 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 2d19h v1.18.8
k8s-node1 Ready <none> 2d19h v1.18.8
k8s-node2 Ready <none> 2d19h v1.18.8
[root@K8s-Node2 ~]#
所有節(jié)點均可正常查看所有節(jié)點狀態(tài)。