告别网络依赖:5分钟搞定K3s离线单机版,快速搭建个人K8s学习环境
5分钟极简指南:零网络依赖搭建K3s单机学习环境
在技术学习过程中,一个稳定可控的实验环境往往比理论知识更重要。对于想要入门Kubernetes却苦于网络不稳定或资源有限的开发者来说,K3s无疑是最佳选择。作为CNCF认证的轻量级Kubernetes发行版,K3s将内存占用缩减到传统K8s的1/10,却保留了完整的Kubernetes API支持。本文将带你绕过复杂的网络配置,用最直接的方式在本地搭建一个完全离线的K3s学习环境。
1. 准备工作:获取离线安装包
K3s的离线安装需要两个核心文件:二进制执行文件和容器镜像包。打开浏览器访问K3s的GitHub Releases页面(https://github.com/k3s-io/k3s/releases),找到对应版本的"Assets"部分:
- k3s:主程序二进制文件(选择与系统架构匹配的版本,如amd64/arm64)
- k3s-airgap-images-${ARCH}.tar:预打包的容器镜像集
以v1.26.2+k3s1版本为例,需要下载:
wget https://github.com/k3s-io/k3s/releases/download/v1.26.2%2Bk3s1/k3s-airgap-images-amd64.tar wget https://github.com/k3s-io/k3s/releases/download/v1.26.2%2Bk3s1/k3s提示:如果目标机器无法访问GitHub,可在能联网的机器下载后通过U盘传输
2. 部署容器镜像
将下载的镜像包放置到K3s的默认读取路径:
sudo mkdir -p /var/lib/rancher/k3s/agent/images/ sudo cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/验证镜像是否就位:
ls -lh /var/lib/rancher/k3s/agent/images/ # 应能看到类似输出: # -rw-r--r-- 1 root root 348M Mar 15 10:23 k3s-airgap-images-amd64.tar3. 安装K3s二进制文件
将k3s二进制文件安装到系统路径并设置执行权限:
sudo install -m 755 k3s /usr/local/bin/创建最小化配置文件(避免自动下载组件):
sudo mkdir -p /etc/rancher/k3s/ cat <<EOF | sudo tee /etc/rancher/k3s/config.yaml write-kubeconfig-mode: "0644" tls-san: - "127.0.0.1" EOF4. 一键启动单机集群
执行离线安装命令:
sudo INSTALL_K3S_SKIP_DOWNLOAD=true \ INSTALL_K3S_EXEC="server --disable=traefik" \ /usr/local/bin/k3s server关键参数说明:
INSTALL_K3S_SKIP_DOWNLOAD=true:禁止在线下载--disable=traefik:禁用默认的Ingress控制器(可选)
5. 验证与基本操作
检查节点状态:
sudo /usr/local/bin/k3s kubectl get nodes # 应看到类似输出: # NAME STATUS ROLES AGE VERSION # localhost Ready control-plane,master 47s v1.26.2+k3s1查看系统Pod运行情况:
sudo /usr/local/bin/k3s kubectl get pods -A获取集群配置(用于本地kubectl访问):
sudo cat /etc/rancher/k3s/k3s.yaml6. 常见问题排查
问题1:镜像导入失败解决方案:
# 检查镜像是否完整 tar tvf /var/lib/rancher/k3s/agent/images/k3s-airgap-images-amd64.tar | head # 重新导入镜像 sudo k3s crictl images import /var/lib/rancher/k3s/agent/images/k3s-airgap-images-amd64.tar问题2:服务启动超时检查服务日志:
sudo journalctl -u k3s -f问题3:端口冲突修改默认端口(示例改为6444):
sudo INSTALL_K3S_SKIP_DOWNLOAD=true \ INSTALL_K3S_EXEC="server --https-listen-port=6444" \ /usr/local/bin/k3s server7. 环境清理与重置
当需要重新开始实验时,彻底清除K3s:
/usr/local/bin/k3s-killall.sh /usr/local/bin/k3s-uninstall.sh rm -rf /etc/rancher/k3s/ /var/lib/rancher/k3s/对于树莓派等ARM设备,只需将下载的amd64替换为arm64即可。实际测试中,在4GB内存的树莓派4B上,K3s启动后内存占用仅500MB左右,完全满足学习需求。
