批量部署, 管理 gitlab runner, 应该用 k3s 还是 docker swarm?

2025 年 2 月 22 日
 kyonn

如题, 如果想批量部署 runner 到复数台设备上, 批量管理和更新 runner, 包括 runner docker 执行器. 用怎么样的技术栈比较合适?

k3s? docker swarm? 各有什么优缺点?

2968 次点击
所在节点    程序员
16 条回复
Jokesy
2025 年 2 月 22 日
runner 打包程序,我们是 gitlab-runner 。
建议使用 k8s ,可以 ds 进行每台机器部署
cctv6
2025 年 2 月 22 日
如果对 k8s 不熟悉的话,用 docker swarm 也是一个很不错的选择。

docker swarm 优势就是简单,有 docker compose 使用经验的话,上手很容易。装好 docker 后,执行加入集群的命令就好了。

docker swarm 也支持创建 daemon 类型的服务,还是很符合你描述的使用场景的。
cctv6
2025 年 2 月 22 日
如果我来选的话,我会选 docker swarm 。
kyonn
2025 年 2 月 22 日
@Jokesy 对 k8s 不是很熟悉, 请问 ds 是什么? 用 k8s 相比于 swarm 有什么优点呢?
kyonn
2025 年 2 月 22 日
@cdlnls 确实, docker-compose 比较熟悉, 没用过 k8s , 想了解下用 swarm 的话会有什么缺点吗? 比如什么功能是不容易实现的, 或者比较繁琐.
BeautifulSoap
2025 年 2 月 22 日
对 k8s 不熟悉,只是搞个 runner 的话别没苦硬吃
julyclyde
2025 年 2 月 22 日
docker 好像已经放弃 swarm 项目了?
cctv6
2025 年 2 月 22 日
@kyonn Jokesy 说的 ds 指的应该是 DaemonSet 这种类型的负载。

docker swarm 也有和这个类似的机制: https://docs.docker.com/reference/compose-file/deploy/#mode
就是用 global 模式,和 k8s DaemonSet 的效果几乎一样,也会在集群里面每个节点都运行一个实例。

你的这个需求挺简单的,写好 docker compose yaml 之后(写好镜像、挂载目录),然后补充上 depoy 的那部分就好了(指定一下模式,资源限制),然后 deploy 一下就好了。
isnullstring
2025 年 2 月 22 日
在用 swarm

看你有多少设备,多少运维,能力水平

运维没几个,能力也一般的话,连 k3s 都用不上,更别提 k8s 了
249239432
2025 年 2 月 22 日
写个自动化部署脚本/程序就行了,现在的人除了 k8s 、docker 就不会用其他的了?
twofox
2025 年 2 月 22 日
@249239432 没苦硬吃
249239432
2025 年 2 月 22 日
@twofox 写个脚本、程序就十来分钟,这叫苦?
twofox
2025 年 2 月 22 日
@249239432 我搭个 docker swarm 要 5 分钟吗?后期要改要扩展还更方便,别人对接也容易
luodan
2025 年 2 月 23 日
k8s 和 swarm 都在生产环境用过,后来选择用 k8s 。感觉 k8s 更稳定,几乎没出过问题。swarm 经常有些小问题需要人来调整。
249239432
2025 年 2 月 23 日
@twofox 不是什么公司都有这些条件,或者这些环境的
有条件的用 docker 、ks8 是简单
hezhiming1993
2025 年 2 月 23 日
@luodan 确实 swarm 虽然不难,总归还是要学新东西. K8S 也是学新东西,相对来说[技能能够迁移]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1113446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX