最近在自己电脑上装了VMWare Player,在上面装了两个Ubuntu虚拟机,为了方便学习云原生技术,决定在上面装一个2个节点(一个控制面,一个工作节点)的K8S集群。
参考这篇文章:
Ubuntu 22.04 搭建K8s集群-腾讯云开发者社区-腾讯云
搭建了集群,前面都很顺利。但是最后在node1节点执行kubectl get pods命令时,报了如下错误:

网上查了很多资料,大部分是针对控制面的问题,给出了如下解决方案:

但是我看了下/etc/kubernetes文件夹下,并没有admin.conf文件,只有kubelet.conf文件。我觉得原理应该是类似的,于是把kubelet.conf文件复制到~/.kube/文件夹并重命名为config。再次执行,这次报的错是:

权限问题,所以我尝试了加sudo,但是依然报错。于是我觉得可能是kubectl命令不能加sudo。所以尝试执行命令

将该文件复制到~/.kube/目录下。同时在/etc/profile文件中增加
bash
export KUBECONFIG=/home/wts/.kube/config
之后执行
bash
source /etc/profile
再在node1执行命令,就成功了:

接下来尝试一下K8S集群是否能正常工作,在控制面执行命令:

创建了一个复制个数为2的nginx集群。
等几十秒,执行命令:

可见已经创建了两个nginx的pod并且已经在运行。
在node1节点执行命令

可见该pod被部署在工作节点node1上了。对另一个pod执行命令,也是一样的结果。