IoT设备实践丨如果你也在树莓派上部署了k3s,你也许需要这篇文章

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

IoT设备实践丨如果你也在树莓派上部署了k3s,你也许需要这篇文章

k3s中文社区   2020-03-13 我要评论
## 前 言 树莓派是一种广泛流行的开发板,随着物联网的深入发展,树莓派大有成为IoT终端设备标准之趋势。在支持客户在IoT场景中落地k3s时,k3s在树莓派上的部署问题也就出现了。本文记录了一些其中的关键问题,转述成文,方便其他用户参考。 **硬件设备:** 树莓派4 **k3s版本:** v1.17.3+k3s1 **操作系统:** ubuntu-18.04.4-preinstalled-server-arm64+raspi3.img 安装采用airgap方式部署后,核心问题是k3s无法启动,并有以下日志报错信息: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200313104155736.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjA2ODEz,size_16,color_FFFFFF,t_70) 关键报错信息: ``` level=error msg="Failed to find memory cgroup, you may need to add \"cgroup_memory=1 cgroup_enable=memory\" to your linux cmdline (/boot/cmdline.txt on a Raspberry Pi)" ``` ## 排查记录 日志提示很明显,所以我们修改/boot/cmdline.txt并重启,但是重启后发现问题依旧,还是有这个问题。这个修改的本质是添加内核参数,所以我们从操作系统层面检查: ``` $ cat /proc/cmdline | grep cgroup_memory # nothing return ``` 也就是说,cmdline的修改没有生效。所以,我们怀疑ubuntu这个镜像修改cmdline有其他方式: ``` $ df -hT | grep mmc https://img.qb5200.com/download-x/dev/mmcblk0p2 ext4 29G 2.8G 26G 10% / https://img.qb5200.com/download-x/dev/mmcblk0p1 vfat 253M 117M 136M 47% /boot/firmware # 真正的启动分区在/boot/firmware # 阅读/boot/firmware/README # 排查后得知,应该修改nobtcmd.txt ``` 在/boot/firmware/nobtcmd.txt添加cgroup相关参数后,重启后可以看到cmdline有了期望的配置: ``` $ cat /proc/cmdline | grep cgroup_memory coherent_pool=1M ………. cgroup_memory=1 cgroup_enable=memory ``` 这时发现k3s依然没有完成启动,日志输出缓慢,怀疑系统某些因素影响了启动过程。排查entropy,发现可用值非常低,低到会阻塞程序运行,一般来说<1000程序就会卡住: ``` $ cat /proc/sys/kernel/random/entropy_avail 522 ``` 很多程序的运行都依赖随机数生成,比如hash、加密解密等过程。申请随机数就会消耗系统的entropy(熵),当entropy低到一定阈值,程序就运行缓慢,等待随机数种子。 一般来说kernel可以从硬件运行信息中收集噪声来补充entropy,但树莓派毕竟硬件能力有限,无法从硬件层面快速生成entropy,所以我们安装软件提供模拟算法进行补充: ``` $ apt install haveged $ systemctl enable haveged $ cat /proc/sys/kernel/random/entropy_avail 2366 ``` 一切妥当之后,再查看k3s启动状态,k3s已经完成启动。 ## 总 结 Linux运行在诸如树莓派这种简易硬件架构下,会有很多细微差别,平日在x86 server体系的认知和经验可能都是不成立,这就导致运行在服务器Linux上的软件并不会那么容易移植到小型终端设备上。对于树莓派,除了文中提及的内容,你还需要关注NTP时间同步,MicroSD卡的IO性能等等。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们