边缘云计算架构(2024)
2024年,由于 凡是过往 皆为序章 而在各地旅行,为了能够继续学习和实践云计算技术,我在旅途中携带 Raspberry Pi 组建的 ARM 堆叠集群,力图能够在低功耗、轻量级的环境中构建企业级边缘云计算。
备注
部署 K3s - 轻量级Kubernetes 集群时候,将部分参考 rpi4cluster.com 方案,但我的个人实践采用的硬件和方法不同
我准备借鉴并尝试不同的应用应用迭代,构建适合自己同时能够进一步完善的解决方案。
我将树莓派组建成一个微型集群,运行 K3s - 轻量级Kubernetes 并通过 Rancher 实现一个PaaS环境。这是一个个人开发和实践环境,通过完整的CI/CD来实现个人工作室。
备注
2024年3月,重新部署 Raspberry Pi 集群,采用了树莓派官方 Raspbery Pi OS(Raspbian) 操作系统,原因是官方系统现已完美支持64位,并且由于使用广泛,可以通过社区获得较好的支持。我计划重新部署 Kubernetes 集群,构建完整的模拟Cloud Atlas集群
硬件环境
我最初主要考虑省钱,有几个思路:
只购买一台 树莓派Raspberry Pi 5 ,然后通过部署 kind(本地docker模拟k8s集群) 来模拟整个 Kubernetes 集群
想利旧我之前购买的 树莓派Raspberry Pi 4 ,也就是将3台 树莓派Raspberry Pi 4 作为管控节点,运行起一个初始化的 Kubernetes ,然后将 树莓派Raspberry Pi 5 来作为工作节点(最初只购买一台),这样也能通过降低硬件成本来节约资金
不过最终我还是没有忍住,陆续购买了3台 树莓派Raspberry Pi 5 ,并且配套 树莓派5 PCIe转M.2 NVMe SSD存储 ,目标是能够实现和 私有云计算构建 相似功能(但性能较弱):
K3s - 轻量级Kubernetes 实现 Kubernetes ,部署企业级的业务容器
后续补充 Hailo AI 处理器 学习实践 Machine Learning
如果还能修好 Jetson Nano
ARM服务器分布
主机IP |
主机名 |
cpu |
内存(G) |
磁盘(G) |
说明 |
---|---|---|---|---|---|
192.168.7.1 |
默认网关 |
||||
192.168.7.2 |
x-zero |
1 |
0.5 |
128 SD |
树莓派zero-w |
192.168.7.211 |
acloud-c1 |
4 |
1 |
64 SD |
树莓派 B4 - k3s master |
192.168.7.211 |
etcd |
etcd服务DNS RoundRobin |
|||
192.168.7.211 |
apiserver |
apiserver服务DNS RoundRobin |
|||
192.168.7.212 |
acloud-c2 |
4 |
1 |
64 SD |
树莓派 B4 - k3s master |
192.168.7.212 |
etcd |
etcd服务DNS RoundRobin |
|||
192.168.7.212 |
apiserver |
apiserver服务DNS RoundRobin |
|||
192.168.7.213 |
acloud-c3 |
4 |
1 |
64 SD |
树莓派 B4 - k3s master |
192.168.7.213 |
etcd |
etcd服务DNS RoundRobin |
|||
192.168.7.213 |
apiserver |
apiserver服务DNS RoundRobin |
|||
192.168.7.221 |
acloud-w1 |
4 |
8 |
2T |
树莓派 B5 - ceph ds/ceph mon/gluster |
192.168.7.222 |
acloud-w2 |
4 |
8 |
2T |
树莓派 B5 - ceph ds/cephfs/gluster |
192.168.7.223 |
acloud-w3 |
4 |
8 |
4T |
树莓派 B5 - ZFS NAS/AI/k3s monitor/k3s dashboard |
192.168.7.224 |
acloud-w4 |
4 |
4 |
128 SD |
Jetson Nano - GPU |
192.168.7.231 |
bcloud-c1 |
4 |
1 |
64 SD |
树莓派 B3 - k0s master |
192.168.7.231 |
etcd |
etcd服务DNS RoundRobin |
|||
192.168.7.231 |
apiserver |
apiserver服务DNS RoundRobin |
|||
192.168.7.232 |
bcloud-c2 |
4 |
1 |
64 SD |
树莓派 B3 - k0s master |
192.168.7.232 |
etcd |
etcd服务DNS RoundRobin |
|||
192.168.7.232 |
apiserver |
apiserver服务DNS RoundRobin |
|||
192.168.7.233 |
bcloud-c3 |
4 |
1 |
64 SD |
树莓派 B3 - k0s master |
192.168.7.233 |
etcd |
etcd服务DNS RoundRobin |
|||
192.168.7.233 |
apiserver |
apiserver服务DNS RoundRobin |
|||
192.168.7.241 |
bcloud-w1 |
4 |
8 |
2T |
树莓派 B3 - k0s master |
192.168.7.242 |
bcloud-w2 |
4 |
8 |
2T |
树莓派 B3 - k0s master |
192.168.7.243 |
bcloud-w3 |
4 |
8 |
4T |
树莓派 B3 - k0s master |
192.168.7.244 |
bcloud-w4 |
4 |
8 |
2T |
树莓派 B4 - k0s worker |
192.168.7.245 |
bcloud-w5 |
4 |
8 |
2T |
树莓派 B4 - k0s worker |
192.168.7.246 |
bcloud-w6 |
4 |
8 |
4T |
树莓派 B4 - k0s worker |
192.168.7.253 |
acloud-dev |
2 |
2 |
6 |
容器(日常开发) |
ARM架构的边缘计算采用了 192.168.7.x
作为网络IP段,和 私有云架构 的 192.168.6.x
隔离
虽然也可以在树莓派上实现 ARM硬件环境KVM虚拟化 ,但是考虑到边缘计算硬件性能有限,所以采用轻量级 Kubernetes 实现 K3s - 轻量级Kubernetes 来构建mini集群,目标是实现:
任意调度计算资源实现服务的伸缩、高可用
构建边缘计算场景: 传感器数据采集、存储、传输,以及独立的AI计算
备注
服务器主机IP段位于:
192.168.7.1 ~ 192.168.7.150
192.168.7.200 ~ 192.168.7.254
保留一段IP用于内网DHCP,提供手机等移动客户端使用:
192.168.7.151 ~ 192.168.7.199