一、问题
正常来讲kubectl 只能在master node 里运行
当我们尝试在某个 node 节点来执行时, 通常会遇到下面错误
执行错误:The connection to the server localhost:8080 was refused - did you specify the
原因:因为k8s的各个组建, 例如pod, nodes, svc 等其实都是被apiservice 去管理的。
即使我们使用kubectl 命令行去管理这些组件, 在背后, kubectl 还是得去调用 apiservice
如下图
二、解决办法
1.查看是否有"/etc/kubernetes/admin.conf"文件。如果没有则从主节点复制到本机环境
scp -r root@192.168.88.5:/etc/kubernetes/admin.conf /etc/kubernetes/admin.conf
2.配置环境变量并刷新
vim /etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf
#保存退出并执行以下代码使用环境变量生效
source /etc/profile