在Kubernetes-k8s集群中,一般只有在master 才能执行kubectl和kubadm 相关的命令
如果到worker nodes 节点上执行,则会有如下报错:
(资料图)
[root@k8s-node1 qq-5201351]# kubectl get nodes,po -AThe connection to the server localhost:8080 was refused - did you specify the right host or port?
当前其实这也是正常的、因为这些命令本来也是发向kube-apiserver,及apiserver的6443号端口才能正常的收到响应,而nodes节点没有任何相关的配置
一般生产环境也是这样,不会允许在nodes节点上去执行这些操作、如果确实想要在nodes节点上执行kubectl和kubadm 相关的命令呢,其实也是有如下2种实现的方法的
方法一:拷贝master节点的/etc/kubernetes/admin.conf 到nodes节点中的同样的目录/etc/kubernetes/ ,然后再配置环境变量
[root@k8s-node1 qq-5201351]# scp k8s-master:/etc/kubernetes/admin.conf /etc/kubernetes/admin.conf
然后再配置环境变量:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profilesource ~/.bash_profile
方法二:拷贝master节点的/etc/kubernetes/admin.conf 到nodes节点的$HOME/.kube目录,并且命名为config就可以了
因为默认是没有$HOME/.kube目录的,先进行创建
mkdir -p $HOME/.kube
scp k8s-master:/etc/kubernetes/admin.conf $HOME/.kube/config
最后我们就可以在worker nodes节点上执行验证了,这里验证kubectl命令,也可以使用kubeadm token list 命令验证也是可以正常执行的
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17407406.html
关键词: