K3s 在 Alpine Linux 上的离线部署与集群搭建
K3s 官方支持 systemd 或 openrc 环境,为了极致精简,选择 Alpine 作为系统底座。相比 RHEL 或 Debian,主要差异在于防火墙配置,基础脚本指令基本一致。
准备阶段
获取安装包
国内源下载以下离线包:
- k3s
- k3s-airgap-images-amd64.tar.gz
拉取官方安装脚本:
curl -o install.sh https://get.k3s.io
环境初始化
接下来准备集群环境,通常需要克隆多台虚拟机或物理机。统一规划节点信息,修改主机名并配置静态解析。
# 修改主机名,每个节点不同
echo "master01" > /etc/hostname
# 配置静态解析,所有节点相同
cat >> /etc/hosts <<EOF
172.16.60.101 master01
172.16.60.102 master02
172.16.60.103 master03
172.16.60.111 worker01
172.16.60.112 worker02
EOF
⚠️ 关键步骤:Alpine 的引导机制与其他发行版不同,需单独处理内核参数。
编辑配置文件 /etc/update-extlinux.conf 末尾添加:
default_kernel_opts="... cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
更新配置并重启:
update-extlinux reboot
安装搭建
单节点部署(All-in-One)
将安装包、镜像包及脚本分发至各节点。
安装 k3s 应用
# 部署应用,会自动添加可执行权限
install k3s /usr/local/bin/k3s
镜像加载
mkdir -p /var/lib/rancher/k3s/agent/images
cp k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
离线安装
# 脚本权限配置
chmod +x install.sh
# 使用离线安装包,默认初始化,使用的是 sqlite
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
参考官方文档,通过附加参数进行初始化定制。--node-ip 用于指定本机 IP,控制节点与工作节点同理。
# 指定网段,并使用 etcd 初始化
INSTALL_K3S_SKIP_DOWNLOAD= \
sh install.sh server \
--node-ip 172.16.60.101 \
--cluster-init


