微型K3s部署准备¶
硬件: 树莓派一代¶
为了能够发挥 树莓派一代 硬件余热(10年前购买的),我通过 树莓派一代安装Alpine Linux 来运行底层系统,一共使用了3个 树莓派一代 :
树莓派一代安装Alpine Linux 只需要执行一次,另外两个树莓派通过 Clone Alpine Linux (树莓派) 可以快速完成
按照 边缘云计算架构 为3个 树莓派一代 分配IP地址及主机名,启动后,确保3台主机都能ssh登陆
我发现实际上只有2台是512MB内存的B型 树莓派一代 ,另外一台则只有 256MB 内存 ,所以硬件性能非常有限
只能安装32位操作系统,使用 Alpine Linux for
armhf
系统,期望能够将硬件资源要求降到最低树莓派一代 功率极低,无风扇,将3台设备叠加起来形成一个stack,扔到桌子底下连接到路由器的网口上组成小集群
alpine linux初始化¶
树莓派一代安装Alpine Linux 安装第一台主机,然后 Clone Alpine Linux (树莓派)
最小化alpine linux安装(sys模式),启动系统后观察可以看到,内存仅占用 42MB
软件仓库激活
community
,即修改/etc/apk/repositories
:
1#/media/sda1/apks
2http://dl-cdn.alpinelinux.org/alpine/v3.15/main
3http://dl-cdn.alpinelinux.org/alpine/v3.15/community
4#http://dl-cdn.alpinelinux.org/alpine/edge/main
5#http://dl-cdn.alpinelinux.org/alpine/edge/community
6#http://dl-cdn.alpinelinux.org/alpine/edge/testing
安装工具 screen终端多路复用管理器 并设置
~/.screenrc
sudo apk add screen
Alpine Linux运行Docker¶
执行以下步骤完成 Alpine Linux 操作系统调整。
备注
默认不需要安装 Alpine Linux运行Docker ,因为 K3s - 轻量级Kubernetes 包含了 containerd运行时(runtime) 和 runc
不过 源代码编译k3s 则需要先安装 Alpine Linux运行Docker ,因为所有编译过程都是在容器中完成
执行cgroup的fs挂载配置:
echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab
创建
/etc/cgconfig.conf
:
cat > /etc/cgconfig.conf <<EOF
mount {
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
}
EOF
修订alpine linux内核启动参数,
/media/mmcblk0p1/cmdline.txt
添加:
cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
重启主机,然后检查
docker info
输出信息