当我们初步安装玩k8s (master 带 2 nodes) 时
正常来讲kubectl 只能在master node 里运行
当我们尝试在某个 node 节点来执行时, 通常会遇到下面错误
看起来像是访问某个服务器的8080 端口失败了。
原因
原因很简单 , 因为k8s的各个组建, 例如pod, nodes, svc 等其实都是被apiservice 去管理的。
即使我们使用kubectl 命令行去管理这些组件, 在背后, kubectl 还是得去调用 apiservice
如下图
所以其实我们在执行kubectl 命令之前, 必须配置一些东西让kubectl 知道 apiservice 的具体ip 和端口
具体步骤
step 1, copy admin.conf from master
在master node 执行
scp /etc/kubernetes/admin.conf root@k8s-node1:/etc/kubernetes/
step2 , 在k8s node 服务器上配置1个环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
然后就可以了 !