blank
blank
发布于 2019-10-28 / 521 阅读 / 0 评论 / 0 点赞

docker swarm 集群 部署服务

部署服务

新建服务 在 manager 节点运行 docker service create 来创建服务 用法类似 docker run

--replicas 3 表示 运行的容器数量 这里是 3

docker service create --replicas 3 -p 80:80 --name nginx nginx:alpine
ujzjguqnf94jhvacfpmnk2osk
overall progress: 3 out of 3 tasks 
1/3: running   [==================================================>] 
2/3: running   [==================================================>] 
3/3: running   [==================================================>] 
verify: Service converged

现在我们使用浏览器,输入任意节点 IP ,即可看到 nginx 默认页面。

提示: swarm 模式的服务 可访问节点IP 数量与容器数量无关

就算只创建一个容器数量的 nginx
仍然可以通过所有集群节点访问
因为 swarm 有内建网络互联 会自动路由请求到目标节点容器端口

查看服务 在 manager 节点运行 docker service ls 来查看当前 Swarm 集群运行的服务。

docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
fysd8lyrxdxr        nginx               replicated          3/3                 nginx:alpine        *:80->80/tcp
在 manager 节点运行 docker service ps $SERVICE_NAME 来查看当前 Swarm 集群运行的服务运行详情
docker service ps nginx
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                ERROR               PORTS
99qwsh8xpuu9        nginx.1             nginx:alpine        node13              Running             Running about a minute ago                       
lu7yaeuptsuk        nginx.2             nginx:alpine        node12              Running             Running about a minute ago                       
qkqbs2ig266u        nginx.3             nginx:alpine        node11              Running             Running about a minute ago 

服务伸缩

我们可以使用 docker service scale 对一个服务运行的容器数量进行伸缩。

当业务处于高峰期时,我们需要扩展服务运行的容器数量。

docker service scale nginx=5

当业务平稳时,我们可以减少服务运行的容器数量。

docker service scale nginx=2

删除服务

使用 docker service rm 来从 Swarm 集群移除某个服务。

docker service rm nginx

评论