今天使用vmware16 +ubuntu20.04搭建单节点 kubernetes 1.22.2,踩了不少的坑,记录一下,希望能帮到大家。
先看一篇高质量的参考:
基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2_琦彦的博客-CSDN博客基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2安装环境win10ubuntu版本 20.04.3docker版本 20.10.7k8s版本 1.22.2vmware参考在win10上使用VMware Pro16 安装 CentOS 7.9 设置静态IP 可以访问外网_琦彦-CSDN博客中安装vmware 部分比较简单, 不再赘述ubuntu镜像下载Ubuntu 20.04https://blog.csdn.net/fly910905/article/details/120606787这上面说到的问题,我几乎全碰到了。
搭建目标:在笔记上,通过wmware16,使用4台虚拟机(一台centos 7.9, 3台ubuntu 20.04)搭建k8s集群。涉及两个网络:
- 114网(内网):用于K8S集群,用于站内流量传输。
- 43网:用于上互联网,3台ubuntu 20.04为k8s集群机器,安装过程中可以连接互联网。
另外,在K8S集群外多搭建一台机器,名为:workstation, 用于
- 起到集群网关、防火墙的作用。
- 安装harbor,用于存放镜像。
详细的步骤就不写了,大致步骤如下:
- 第1步:打开手机热点。
这是一句正确的废话。
- 第2步:笔记本电脑连接热点后,设置其固定IP为:192.168.43.111.
- 第3步:创建1个虚拟机网络: 114网。
注意:43网是互联网,不用创建虚拟机网络,创建虚拟机时直接使用桥连模式即可。
完成后,笔记本IP如下:
- 第4步:搭建workstation机器。
这是我第3次搭建k8s集群,之前已经有一台centos 7 (主机名:workstation, 192.168.114.100/24),上面已经搭建了GitLab, Jenkins, Harbor-2.4等。Harbor上面存放了我很多已下载好的镜像,所以,我这次可以直接拿来用。
截图如下:
- 第5步:下载IOS.
- 第6步:在vmware16中,安装一台ubuntu20, 作为master节点。
设置主机名为:u20-m
网络设置下如:
在安装时,设置好一个固定的IP地址(192.168.114.30),43网段的使用dhcp协议,自动获取IP。
网络配置:
网络效果如下:
- 第7步:在master节点中,进行各种设置,包括:路由,root用户可以直接登录等。设置好后,master的路由如下:
确保master是可以上网的。
- 第9步:安装docker(master节点)
执行:
配置:
跑一个hello-world, 确保docker能拉镜像,能跑。
Harbor私服测试:
- 第7步:安装kubectl, kubelet等(master节点,主机名u20-m),指定版本号为:1.22.2-00
apt-get install -y kubelet=1.22.2-00 kubeadm=1.22.2-00 kubectl=1.22.2-00
- 第8步:在vmware克隆master节点,创建两台worker(主机名:u20-1, u20-2)
- 第9步:配置u20-1, u20-2网络:
- 第10步:准备一份kubeadm.yml文件,注意红框的设置。
- 第11步:执行kubeadm init(master节点)。
kubeadm init --config=kubeadm.yml
- 第12步:使用kubeadm join,把另外两台加入到集群中。
- 第13步:安装calico网络
下载yaml文件:
$ wget -O 1-tigera-operator.yaml https://docs.projectcalico.org/manifests/tigera-operator.yaml $ wget -O 2-custom-resources.yaml https://docs.projectcalico.org/manifests/custom-resources.yaml
修改:
执行:
kubectl apply -f 1-tigera-operator.yaml kubectl apply -f 2-custom-resources.yaml
另外一份 1-tigera-operator.yaml有几千行,就不粘出来了。
- 第14步:验证.
所有节点状态都是Ready。
所有pod都是Running状态:
问题: 问题1:多条default(0.0.0.0)路由,导致不能上网。这是因为在安装ubuntu时,不小心多设置导致, 注释不需要用的网卡的gateway:
问题2: 安装指定的软件版本:
问题3. ubuntu开机等待网络设置问题
开机时,出现以下任务,等待约2分钟
解决办法如下:
问题4:安装完成后,win10不连接手机热点,43网段无法使用,将会导出calico的pod出现运行时错误。问题原因:路由规则设置不对,导致数据包仍依赖43网段。
有两种解决办法:
解决办法1(推荐):修复各个节点的路由配置,尤其是default路由,使得所有数据包都从192.168.114.x网段出去。以master节点为例(其他workder节点配置类似)。操作步骤如下:
首先,设置网卡。
然后,在下面的文件中进行配置默认路由:
最后,重启。
重启后,效果路由表及网卡配置如下:
解决办法2:使用vmware的网络功能重新创建43网,然后在linux中设置固定IP。
修改原来的43网卡:
添加一张新网网卡:
完成后,master节点有3张网卡:
master节点的路由,应该是由手机热点的那张新网卡出去。
验证一下,确保两张新旧网卡都能正常工作:



