零基础K3s轻量K8s集群搭建教程:3分钟上手
适用场景与准备工作
K3s是Rancher出品的一款完全兼容Kubernetes的轻量级发行版,专为资源受限的环境设计。
如果你只有一两台低配云服务器或树莓派,又想体验Kubernetes的强大编排能力,K3s轻量K8s集群搭建教程就是最佳选择。
本文以Ubuntu 20.04为例,你需要准备两台以上服务器(一台作为Server节点,其余作为Agent节点),确保服务器能正常联网,并关闭防火墙或开放必要端口。
核心操作:一键安装与集群初始化
1. 在Server节点安装K3s(控制面)
登录你的主服务器(假设IP为192.168.1.100),执行以下命令一键安装:
curl -sfL https://get.k3s.io | sh -
安装完成后,K3s会自动启动。
使用以下命令查看节点状态:
sudo k3s kubectl get nodes
看到状态为Ready即表示控制面安装成功。
此时会生成一个/var/lib/rancher/k3s/server/node-token文件,里面保存了Agent节点的认证令牌。
2. 获取并记录Server节点Token
执行以下命令获取Token:
sudo cat /var/lib/rancher/k3s/server/node-token
输出类似K107d8e...的一串字符串,请复制保存,后续Agent节点加入集群时需要用到。
同时记住Server节点的IP地址。
3. 在Agent节点加入集群
登录你的工作节点(假设IP为192.168.1.101),执行如下命令,将K3S_URL和K3S_TOKEN替换为实际值:
curl -sfL https://get.k3s.io | K3S_URL=https://192.168.1.100:6443 K3S_TOKEN=你的Token sh -
等待安装完成,回到Server节点再次运行sudo k3s kubectl get nodes,你应该能看到两个节点都处于Ready状态。
至此,一个最简单的K3s集群就搭建完成了。
避坑指南与高频问题
- 端口冲突:K3s默认使用6443端口作为API Server,如果该端口被占用,可以在安装时指定
--tls-san和--advertise-address等参数。 - 防火墙设置:如果服务器开启了UFW防火墙,需要允许6443端口(Server节点),以及用于节点间通信的8472端口(Flannel VXLAN)和10250端口(kubelet)。
- Token过期:默认Token没有过期时间,但如果你需要重新生成,可以修改
/var/lib/rancher/k3s/server/cred/passwd文件后重启服务。 - 内存要求:K3s的Server节点建议至少1GB内存,Agent节点512MB即可,但运行实际Pod时需根据负载调整。
效果验证:部署一个测试应用
为了确认集群正常工作,快速部署一个Nginx测试服务:
sudo k3s kubectl create deployment nginx-test --image=nginx
sudo k3s kubectl expose deployment nginx-test --port=80 --type=NodePort
等待Pod运行后,
用sudo k3s kubectl get svc查看NodePort的映射端口(例如30862),
然后通过Server节点IP加该端口访问:http:,
//192.168.1.100:
30862
若看到Nginx欢迎页即表示集群完全可用。
写在最后
通过本K3s轻量K8s集群搭建教程,你已具备一个生产可用的轻量集群。
日常运维中,建议定期使用sudo k3s kubectl get all检查资源状态。
遇到节点掉线时,优先检查网络连通性和Token是否一致。
K3s的官方文档非常详尽,可以在此基础上进一步学习Ingress、存储卷等高级功能。
随后,你可以尝试部署自己的Java或Go应用,体验Kubernetes带来的弹性和自动恢复能力。