最近因工作需求,进行了部分云边端的调研测试,主要涉及k8s、k3s、k0s。最后经过咨询云计算大佬,再结合自身当前需求,实际搭建的是k3s的集群。
——————————————————————————————————————————————————华丽的分割线
集群架构为 k3s+rancher+mysql
搭建的集群结点总览:
名字 描述 系统 参与测试
master1: 集群主server节点m1 centOS7虚拟机 是-2核心4线程-4.0g ram
master2: 集群从server节点m2 centOS7虚拟机 是-2核心4线程-2.5g ram
master3: 集群从server节点m3 centOS7虚拟机 否
agent1: 集群worker节点ag1 centOS7虚拟机 否
agent2: 集群worker节点ag2 centOS7虚拟机 否
database: 集群的mysql节点db centOS7虚拟机 是-2核心2线程-1.5g ram
因电脑内存不够T T,集群正常运行状态是可以做到全节点,但是测试情况下因为性能消耗比较多,固只选取了部分节点进行参与测试
集群的搭建方法,网上都有很多,xdm自行查阅资料即可完成搭建,我自己也是摸索着,大概一周左右完成的集群搭建,还包括后面搭建了k3d(在docker里面运行k3s),想了解具体详情的朋友自己去探索一下就好了,此处主要为记录部分测试数据。
——————————————————————————————————————————————————华丽的分割线
测试使用的是 Netdata 这款软件进行的测试
下面还是附一下Netdata的安装方式
1.安装Netdata需要的基本编译环境安装:
sudo su切换到root
yum install zlib-devel gcc make git autoconf autogen automake pkgconfig
2.下载和安装Netdata
cd /usr/local/src/
wget http://firehol.org/download/netdata/releases/v1.0.0/netdata-1.0.0.tar.gz
tar -xf netdata-1.0.0.tar.gz
cd netdata-1.0.0
./netdata-installer.sh
至此Netdata就安装完了,Netdata安装完后,本身就启动了。
直接用浏览器访问:http://127.0.0.1:19999
即可进入主界面
——————————————————————————————————————————————————华丽的分割线
测试方法,测试环境不同,测试的数据可能有出入,我只能保证自己的测试内容、测试数据真实。
下面就是测试的部分数据,分享出来大家可以参考,目前自己也是摸索了一段时间云边端,不算特别专业,也是第一次发帖,写的欠佳的地方希望xdm多多包涵:
——————————————————————————————————————————————————华丽的分割线
测试情况:只开启了虚拟机m1情况下
Ipv4检测到传输速率为215kbps左右
进一步分析
Tcp连接数10,包数为每秒28包左右
Udp稳定为0
Tcp包数据为28包/秒
Error部分 数据为0
Feagments部分 数据为0
Broadcast部分 数据为0
Multicast部分 数据为0
——————————————————————————————————————————————————华丽的分割线
k8s安装完以后,查看k8s 各node节点的网卡,会发现多了4个网卡docker0,flannel.1, cni0, veth, 其中docker0纯粹是因为安装了docker服务才生成的网卡,和k8s集群是的逻辑架构没关系
网口检测分析:
cni0 网卡,k3s创建用来实现pod容器的通信
cni0 ,用来实现pod中容器的通信,案例:不通node上面, pod中容器的通信
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
inet6 fe80::d0b6:e4ff:fec8:153 prefixlen 64 scopeid 0x20<link>
ether d2:b6:e4:c8:01:53 txqueuelen 1000 (Ethernet)
RX packets 7767 bytes 569208 (555.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7755 bytes 692618 (676.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Docker0网卡 充当网桥功能,接收峰值2.97 发送峰值12.11 单位kilobits/s
docker0 充当了一个网桥的功能,就是相当于一个集线器的功能,一个口收到信号,原封不动的发给其他的口,相当于最原始的交换机,所以这个就和docker0本身的ip没有没有关系了
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:ceff:fee8:c32e prefixlen 64 scopeid 0x20<link>
ether 02:42:ce:e8:c3:2e txqueuelen 0 (Ethernet)
RX packets 18559 bytes 9225084 (8.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19720 bytes 10219190 (9.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33网卡为虚拟机系统网卡
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.110.131 netmask 255.255.255.0 broadcast 192.168.110.255
inet6 fe80::20c:29ff:fec1:da9a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c1:da:9a txqueuelen 1000 (Ethernet)
RX packets 142796 bytes 120136512 (114.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 107613 bytes 23137293 (22.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
overlay网络的设备,用来进行 vxlan 报文的处理(封包和解包)。不同node之间的pod数据流量都从overlay设备以隧道的形式发送到对面
flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.42.0.0 netmask 255.255.255.255 broadcast 0.0.0.0
inet6 fe80::947b:6ff:fe2b:3c48 prefixlen 64 scopeid 0x20<link>
ether 96:7b:06:2b:3c:48 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 361 bytes 21660 (21.1 KiB)
TX errors 0 dropped 29 overruns 0 carrier 0 collisions 0
数据全为0
vethb3ee768: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::2c69:88ff:fe16:fc6 prefixlen 64 scopeid 0x20<link>
ether 2e:69:88:16:0f:c6 txqueuelen 0 (Ethernet)
RX packets 18954 bytes 9545854 (9.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20304 bytes 10497149 (10.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethb6fe3f61: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet6 fe80::3c03:55ff:fe2d:ef01 prefixlen 64 scopeid 0x20<link>
ether 3e:03:55:2d:ef:01 txqueuelen 0 (Ethernet)
RX packets 6839 bytes 611094 (596.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6906 bytes 615630 (601.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethba01a93c: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet6 fe80::4881:31ff:feab:8fcf prefixlen 64 scopeid 0x20<link>
ether 4a:81:31:ab:8f:cf txqueuelen 0 (Ethernet)
RX packets 1295 bytes 88882 (86.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1318 bytes 103609 (101.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
——————————————————————————————————————————————————华丽的分割线
当开启了虚拟机db,此时工作虚拟机为m1和db,k3s此时正常工作(之前因外挂数据库不在线,会导致k3s-Server启动失败)
当前集群节点运行情况
运行db虚拟机,此时k3s自动恢复运行,进入kuboard运维查看添加的工作负载pod(nginx-test-demo服务)正常运行
Kbps数据量上升
Ipv4 监控到数据量,tcp连接数明显上升
Udp数量依然为0
Packets数量上升,其他监测项没变化,如udp一样为0.
——————————————————————————————————————————————————华丽的分割线
恢复虚拟机m2节点,刷新kuboard界面管理页面,m2节点上线时间<3s(直接虚拟机从挂起状态,恢复成运行状态)
此时监控 kps较之前没有明显的上升
ipv4网络监控
Tcp网络监控
虚拟机网卡发出和接收的数据
峰值 接收769,发送545
峰值 接收610,发送193
在45分挂起了m2虚拟机,可以看到,m1出现一个发送和接收都看到一个波峰
峰值 接收2937,发送1874
——————————————————————————————————————————————————华丽的分割线
至此是所有的测试内容。以及数据分享,在测试时,个人分析感觉因为存在服务读取本地硬盘数据的情况,当硬盘读取速度太快时,系统性能明显下降,甚至出现cpu数据飙升的情况,本次测试使用单台物理笔记本,配合vmware虚拟机进行的测试,测试环境只能说是模拟的多节点环境,真实情况可能会因为硬盘读写的效率提高,性能还会有所提升。
此次记录,仅为本人的一次测试分享,不喜勿喷~
xdm一起加油,共勉