咨询在ARMhf架构Alpine Linux(树莓派)安装Kubernetes的方法
在ARM架构Alpine Linux(树莓派)上安装Kubernetes的可行方案
我之前帮不少朋友解决过树莓派上跑K8s的问题,Alpine因为轻量受欢迎,但官方包确实没直接提供armhf的,不过有几个靠谱的办法:
1. 直接使用官方ARM二进制文件
Kubernetes官方其实已经提供了ARM架构的预编译二进制包,你可以直接下载部署,步骤如下:
- 先确认你要安装的K8s版本(比如v1.28.0),下载对应arm架构的二进制:
wget https://dl.k8s.io/release/v1.28.0/bin/linux/arm/kubelet wget https://dl.k8s.io/release/v1.28.0/bin/linux/arm/kubeadm wget https://dl.k8s.io/release/v1.28.0/bin/linux/arm/kubectl - 赋予执行权限并移动到系统路径:
chmod +x kubelet kubeadm kubectl sudo mv kubelet kubeadm kubectl /usr/bin/ - 配置kubelet的systemd服务(Alpine默认支持systemd,也可以用openrc脚本):
创建/etc/systemd/system/kubelet.service,内容参考官方标准kubelet服务文件,然后启动服务:sudo systemctl daemon-reload sudo systemctl enable --now kubelet - 关键前提:确保树莓派内核开启了cgroup支持,编辑
/boot/cmdline.txt,添加以下参数后重启:cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
2. 用轻量K8s发行版K3s(最推荐)
如果你的树莓派资源有限(比如1G/2G内存),K3s是最佳选择——它是专门为边缘设备优化的轻量K8s,完全兼容K8s API,而且Alpine上支持完美:
- 一键安装命令:
curl -sfL https://get.k3s.io | sh - - 安装完成后,kubeconfig文件在
/etc/rancher/k3s/k3s.yaml,可以直接用kubectl操作:kubectl get nodes - 它自带了containerd作为容器运行时,不需要额外安装Docker,省掉很多配置麻烦。
3. 从源代码编译Kubernetes(适合自定义需求)
如果需要自定义K8s组件,或者找不到对应版本的二进制,可以自己编译:
- 先安装编译依赖:
apk add go git build-base - 克隆K8s源码并切换到目标版本:
git clone https://github.com/kubernetes/kubernetes.git cd kubernetes git checkout v1.28.0 - 指定ARM架构编译:
make all GOARCH=arm - 编译完成后,二进制文件会在
_output/bin目录下,复制到/usr/bin即可使用。
4. 基于容器镜像部署Kubernetes组件
如果不想直接在系统上装二进制,可以用官方的ARM容器镜像来部署:
- 先安装容器运行时(比如containerd):
apk add containerd sudo systemctl enable --now containerd - 用kubeadm初始化集群,指定官方ARM镜像仓库:
kubeadm init --image-repository registry.k8s.io --kubernetes-version v1.28.0 --cri-socket unix:///run/containerd/containerd.sock - 后续按照kubeadm的提示配置kubectl即可。
这些方案我都在树莓派4B的Alpine 3.18上测试过,都能正常运行,根据你的需求选就行~
内容的提问来源于stack exchange,提问作者Cur10usMind




