三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

告别网络依赖:5分钟搞定K3s离线单机版,快速搭建个人K8s学习环境

告别网络依赖: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.tar

3. 安装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" EOF

4. 一键启动单机集群

执行离线安装命令:

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.yaml

6. 常见问题排查

问题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 server

7. 环境清理与重置

当需要重新开始实验时,彻底清除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左右,完全满足学习需求。

← 返回列表