在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况。此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运行?代码修改了,于是又要一个服务器一个服务器登录上去依次更新?
有时候爬虫只需要在一个服务器上面运行,有时候需要在200个服务器上面运行。你是怎么快速切换的呢?一个服务器一个服务器登录上去开关?或者聪明一点,在Redis里面设置一个可以修改的标记,只有标记对应的服务器上面的爬虫运行?
A爬虫已经在所有服务器上面部署了,现在又做了一个B爬虫,你是不是又得依次登录每个服务器再一次部署?
如果你确实是这么做的,那么你应该后悔没有早一点看到这篇文章。看完本文以后,你能够做到:
2分钟内把一个新爬虫部署到50台服务器上:
docker build -t localhost:8003/spider:0.01 .
docker push localhost:8002/spider:0.01
docker service create --name spider --replicas 50 --network host 45.77.138.242:8003/spider:0.0130秒内把爬虫从50台服务器扩展到500台服务器:
docker service scale spider=50030秒内批量关闭所有服务器上的爬虫:
docker service scale spider=01分钟内批量更新所有机器上的爬虫:
docker build -t localhost:8003/spider:0.02 .
docker push localhost:8003/spider:0.02
docker service update --image 45.77.138.242:8003/spider:0.02 spider这篇文章不会教你怎么使用Docker,所以请确定你有一些Docker基础再来看本文。
Docker Swarm是什么
Docker Swarm是Docker自带的一个集群管理模块。他能够实现Docker集群的创建和管理。
环境搭建
本文将会使用3台Ubuntu 18.04的服务器来进行演示。这三台服务器安排如下:
Master:45.77.138.242
Slave-1:199.247.30.74
Slave-2:95.179.143.21
Docker Swarm是基于Docker的模块,所以首先要在3台服务器上安装Docker。安装完成Docker以后,所有的操作都在Docker中完成。
在Master上安装Docker
通过依次执行下面的命令,在Master服务器上安装Docker
apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
apt-get update
apt-get install -y docker-ce创建Manager节点
一个Docker Swarm集群需要Manager节点。现在初始化Master服务器,作为集群的Manager节点。运行下面一条命令。










