You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

咨询在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

火山引擎 最新活动