Products
GG网络技术分享 2026-01-23 17:21 2
说真的,刚开始听到"集群化部署"这个词的时候,我还以为是什么高大上的黑科技。毕竟咱就是个普通运维, 每天Neng按时下班就谢天谢地了谁知道领导突然扔过来一个任务:去研究研究怎么用Docker Swarm搞集群管理。
当时我的内心是崩溃的。Kubernetes?那玩意儿光是安装配置就Neng让人掉一层皮,各种yaml文件kan着就头大。后来啊后来一查,发现Swarm居然是Docker亲生的,而且据说比K8s简单多了?抱着将信将疑的心态,我开始了一段跌跌撞撞的Swarm探索之旅。

先说说背景吧。我们公司之前的情况是这样的:七八台服务器, 每台机器上dou跑着几个容器,部署个服务得手动SSH到每台机器上拉镜像、跑容器。运气好的话一切顺利,运气不好某台机器挂了就等着背锅吧。有一次凌晨三点被
suo以当了解到Swarm可yi自动把容器调度到健康的节点上时我整个人dou精神了。这不就是我梦寐以求的东西吗?不用再担心某个节点挂掉导致服务不可用,Swarm会自动把副本分配到其他健康的节点上。这也太香了吧,原来小丑是我。!
可Nenghen多朋友和我一样,一kan到官方文档就犯困。什么Raft一致性算法、 平心而论... 什么Manager节点Worker节点,听着就头疼。让我用人话给你解释一下。
功力不足。 想象一下你有一堆服务器,每台机器上dou装着Docker。你想让这些机器像一个整体一样工作,不用关心具体哪台机器在跑哪个容器——这事儿交给Swarm就行了。Swarm会把这些机器组织成一个集群,ran后帮你统一管理里面的suo有容器。
闹乌龙。 这个集群里有两种角色:Manager节点和Worker节点。Manager节点就是大脑,负责发号施令;Worker节点就是苦力,负责实际干活。一个集群可yi有多个Manager, 它们之间会tong过Raft算法保持数据一致,这样即使某个Manager挂掉了其他Manager也Neng接管工作,不会出现单点故障。
得了吧... 说到这儿,我必须吐槽一下刚开始踩的坑。第一次搭建集群的时候, 我稀里糊涂就把三台机器dou加成了Manager,后来啊发现其中一台配置特bie低,跑起服务来慢得像蜗牛。后来才知道,应该让高配机当Manager,低配机当Worker比较合理。不过好在Swarm支持, 把一个节点从Manager降级成Worker分分钟的事儿,这个设计还是相当人性化的。
*此处插入一段与主题无关的个人吐槽*
好,咱们言归正传。在Swarm里有几个核心概念必须搞清楚,不ran后面会一脸懵逼。先说说是Node也就是节点,指的是加入到Swarm集群中的每一台Docker主机。接下来是Service 服务, 好吧... 这是你定义的一个个要运行的应用,比如一个Nginx服务、一个MySQL服务。再说说是Task任务,这个是实际运行中的容器实例,一个服务可Neng会对应多个任务副本。
| 主流容器编排工具功Neng对比表 | |||
|---|---|---|---|
| 特性/工具 | Docker Swarm | Kubernetes | Mesos |
| 上手难度 | ★☆☆☆☆ 简单到哭 | ★★★★★ 学到你秃头 | ★★★☆☆ 需要学习曲线 |
| 配置复杂度 | 几条命令搞定的事 | yaml文件满天飞 | 配置文件hen繁琐 |
| 资源占用情况 | 几乎无额外消耗" | " |
⚠️ 注意:以下内容可Neng引起不适 ⚠️""
|
Demand feedback