Kubernetes node节点执行kubectl命令

Kubernetes node节点执行kubectl命令

集群搭建完成后,在Kubernetes的从节点上运行命令kubectl出现了如下错误:

[root@master ~]# kubectl get nodes

error: no configuration has been provided, try setting KUBERNETES_MASTER environme

原因是kubectl命令需要使用kubernetes-admin来运行。现在就去看看如何破解这个问题。

  1. 复制/etc/kubernetes/admin.conf 文件
    解决方法如下,将主节点中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下,然后配置环境变量。
    我这里使用scp命令复制:
[root@node1 kubernetes]# scp [email protected]:/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.
[email protected]'s password:
admin.conf                                                                                   100% 5452    68.8KB/s   00:00

  1. 设置环境变量
    环境变量可在 ~/.bash_profile,修改 vim /etc/profile 配置文件,添加如下配置
export KUBECONFIG=/etc/kubernetes/admin.conf

保存退出,执行 source /etc/profile,配置立即生效。

  1. 查看验证kubectl命令
    在从节点上执行如下命令
kubectl get pods -n kube-system

kubectl get nodes

发现可以正常展示信息。
这里我们会发现,为何不需要指定api-server地址就可以直接执行相关命令,那是因为刚刚我们从master节点拷贝过来的admin.conf这个配置文件存放的是Kubernetes用户权限相关的配置。

你可能感兴趣的:(kubernetes,集群环境搭建,kubernetes,docker)