Docker部署K3s:零基础搭建轻量Kubernetes集

准备工作:一台装了Docker的Linux服务器

使用Docker部署K3s之前,先确认你的服务器上已经安装了Docker。
如果你还没有Docker,可以参考官方文档用一条命令安装(这里不展开)。
K3s是Rancher出品的轻量级Kubernetes发行版,适合边缘计算和资源敏感的场景。
通过Docker运行K3s可以省去系统包管理的步骤,一切在容器里完成。

检查项清单

  • 操作系统:Ubuntu 20.04+ 或 CentOS 7+(其他Linux发行版同理)
  • Docker版本:20.10以上(执行 docker --version 查看)
  • 网络:开放6443端口(K3s API Server)和对外通信能力
  • 内存:server节点建议至少2GB,agent节点1GB即可

部署K3s Server节点

我们先启动一个K3s Server容器,它会自动创建etcd和API Server。
打开终端,输入以下命令:

docker run -d --restart=unless-stopped \
  --name k3s-server \
  -p 6443:6443 \
  -v /var/lib/rancher/k3s:/var/lib/rancher/k3s \
  rancher/k3s server

参数说明:

  • -d 后台运行
  • --restart=unless-stopped 退出后自动重启
  • -p 6443:6443 映射API端口到宿主机
  • -v 挂载数据卷,保存集群配置和证书,这样容器删除后数据不丢

启动后,需要获取管理凭据。
进入容器内部复制kubeconfig文件到宿主机:

docker exec k3s-server cat /etc/rancher/k3s/k3s.yaml > ~/.kube/config

然后修改配置里的server地址,把 127.0.0.1 换成你服务器的公网IP或域名。
接着就可以用 kubectl get nodes 验证,应该能看到一个Ready状态的节点。

添加Agent节点(Worker)

Agent节点同样用容器运行,但需要知道Server的Token。
先获取Token:

docker exec k3s-server cat /var/lib/rancher/k3s/server/node-token

复制输出的Token字符串(类似 K10xxxxxxxx)。
然后启动Agent容器:

docker run -d --restart=unless-stopped \
  --name k3s-agent \
  --link k3s-server \
  rancher/k3s agent \
  --server https://k3s-server:6443 \
  --token <你刚才获取的Token>

注意:--link 让agent能通过容器名解析server的IP。
如果你用多个agent,重复执行上面的命令,每次改一下 --name 即可。

几分钟后回到Server节点,执行 kubectl get nodes,你应该看到两个节点都显示Ready。

避坑指南 & 常见问题

Q:Agent节点连不上Server怎么办?

  • 先检查Server容器的6443端口是否被防火墙阻挡。简单测试:在agent服务器上执行 curl -k https://:6443,如果返回类似 403 Forbidden 说明可以通。
  • 如果用 --link 无效(Docker网络模式限制),可以改用 --add-host k3s-server:,或者直接用实际的宿主机IP替换 k3s-server

Q:如何修改Server启动参数?

  • docker runserver 命令后追加参数,例如 --disable-agent 可以让server不做worker。完整参数参考K3s官方文档。

Q:如何查看容器日志?

  • docker logs k3s-serverdocker logs k3s-agent,如果启动失败常见原因是端口占用或磁盘权限。

Q:需要持久化存储怎么办?

  • 已经通过 -v 挂载了数据目录,但Pod的持久卷需要额外配置,建议先了解K3s默认的Local Path Provisioner。

效果验证:部署一个测试应用

创建一个简单的Deployment来验证集群是否正常工作:

kubectl create deployment nginx-test --image=nginx
kubectl expose deployment nginx-test --port=80 --type=NodePort
kubectl get svc

访问 http://<任意节点IP>:,看到Nginx欢迎页面就说明集群完全可用。

总结

通过Docker部署K3s,你只需要两条命令就能获得一个功能完整的Kubernetes集群。
这种方式特别适合开发和测试环境,也方便快速体验K3s特性。
如果你在生产环境使用,建议加上更多的卷映射和资源限制。
遇到任何异常,优先检查容器日志和服务端口,大部分问题都能靠 docker logs 定位。
记住,K3s的轻量和兼容性让它成为入门Kubernetes的最佳选择之一。

分享到:
上一篇
Linux服务器网络接口配置教程
下一篇
服务器轻量云与ECS区别:轻量云服务器和ECS到底怎么选?零
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意