博客园  :: 首页  :: 管理

在Kubernetes-k8s集群中,一般只有在master 才能执行 kubectl和kubadm 相关的命令

如果到worker nodes 节点上执行,则会有如下报错:

[root@k8s-node1 qq-5201351]# kubectl get nodes,po -A
The 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_profile
source ~/.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