作者拥有一些树莓派 4,但对其处理能力和电源管理功能不太满意,于是开始探索替代方案,利用抽屉中闲置的旧智能手机。
- 引言:如今应用越来越资源密集,作者的一些工作负载包括多种服务,水平扩展虽常见但昂贵,而旧设备虽过时但计算能力仍可与新设备媲美。
- 树莓派的优势与挑战:树莓派擅长运行小服务和作为电器,但作为 Kubernetes 节点有物理尺寸大、电源管理复杂(需单个电源且多口电源不可靠)、性能有限、价格较高等挑战。
- 旧智能手机的优势:旧智能手机虽因软件过时被丢弃,但仍有大量计算和存储能力,且自带电池可作为 UPS,集成显示屏可作仪表盘,价格低廉,如文中列举的多款旧手机与树莓派 4 的对比。
- Linux 在智能手机上的问题:多数安卓智能手机对主线 Linux 支持不佳,解锁引导加载程序可能棘手(如小米解锁需 7 - 30 天,华为/荣耀不可解锁,应优先选择谷歌、一加、FairPhone 等),Linux 内核的 GPL 许可证常不被尊重,且总有设备不被社区支持,但可购买已受社区部分支持的二手设备。
- postmarketOS 介绍:它是基于 Alpine Linux 的适用于智能手机的滚动 Linux 发行版,旨在运行主线 Linux 内核,可将智能手机当作电脑使用,安装各种桌面环境和应用。
- ARM 上的 Linux 现状:随着苹果硅的推动和相关工作,Linux 在 ARM 上发展迅速,受许多发行版支持,虽仍有软件分发商假设在 x86_64 上运行的问题,但正在改善。
设置节点:
- 经验教训:别花半天时间调试 iptables,Docker、Kubernetes 和 K3s 需要启用一些内核模块/配置,可先运行 Docker 容器再用 moby 的 check-config.sh 检查,K3s 用其自身的 check-config.sh 检查,Kubernetes 的 CNI 可能需要额外的内核功能。
- OnePlus 5T(dumpling):是“测试”设备,Wi-Fi 和 USB 以太网工作正常,可通过 USB 连接到电脑并 SSH 进入,连接 Wi-Fi 需使用 NetworkManager,作为 Kubernetes 节点需配置 k3s,包括安装 k3s、配置 config.yaml 和 /etc/conf.d/k3s,启动 k3s 但可能遇到内核功能缺失问题,需重新编译内核并调整配置,解决网络问题(如 DNS 解析故障、数据包转发问题等)后可运行工作负载并标记节点。
- OnePlus 8 Pro(instantnoodlep):添加此设备时遇到 Wi-Fi 芯片缺失问题,尝试应用 OnePlus 8T 的补丁但未成功,通过参考其他类似设备的设备树进行多次尝试后终于使芯片被识别并连接到 Wi-Fi 网络,可加入集群运行工作负载,此设备的背光灯无法关闭。
- 结论:加入第二个节点后形成 3 节点集群,可运行工作负载,且 reuse 了旧设备,还分享了 OnePlus 8 Pro 的 pre-built boot.img。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。