Kubernetes node节点执行kubectl命令
集群搭建完成后,在Kubernetes的从节点上运行命令kubectl出现了如下错误:
[root@master ~]# kubectl get nodes
error: no configuration has been provided, try setting KUBERNETES_MASTER environme
原因是kubectl命令需要使用kubernetes-admin来运行。现在就去看看如何破解这个问题。
- 复制/etc/kubernetes/admin.conf 文件
解决方法如下,将主节点中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下,然后配置环境变量。
我这里使用scp命令复制:
[root@node1 kubernetes]# scp root@192.168.1.12:/etc/kubernetes/admin.conf /etc/kubernetes/
The authenticity of host '192.168.1.12 (192.168.1.12)' can't be established.
ECDSA key fingerprint is SHA256:EG26pBKAbxAddDFuh6N81IY7sXWCoblngfn1oRbpNeU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.12' (ECDSA) to the list of known hosts.
root@192.168.1.12's password:
admin.conf 100% 5452 68.8KB/s 00:00
- 设置环境变量
环境变量可在 ~/.bash_profile,修改 vim /etc/profile 配置文件,添加如下配置
export KUBECONFIG=/etc/kubernetes/admin.conf
保存退出,执行 source /etc/profile,配置立即生效。
- 查看验证kubectl命令
在从节点上执行如下命令
kubectl get pods -n kube-system
kubectl get nodes
发现可以正常展示信息。
这里我们会发现,为何不需要指定api-server地址就可以直接执行相关命令,那是因为刚刚我们从master节点拷贝过来的admin.conf这个配置文件存放的是Kubernetes用户权限相关的配置。