上一节部署了只有一个副本的Service,不过对于web服务,我们通常会运行多个实例,这样可以做负载均衡,同时也能提高可用性。
swarm 要实现这个目标非常简单,增加Service 的副本数就可以了。在 swarm-manager 上执行如下命令
root@host03:~# docker service scale web_server=5
web_server scaled to 5
overall progress: 5 out of 5 tasks
1/5: running [==================================================>]
2/5: running [==================================================>]
3/5: running [==================================================>]
4/5: running [==================================================>]
5/5: running [==================================================>]
verify: Service converged
root@host03:~# docker service ps web_server # 副本数增加过程中
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
jykct1jmfrte web_server.1 httpd:latest host03 Running Running 20 minutes ago
n4afxlx16tny web_server.2 httpd:latest host03 Running Running 13 seconds ago
kmtovvs8i1rk web_server.3 httpd:latest host01 Running Preparing 14 seconds ago
mlsb1ey4n65r web_server.4 httpd:latest host02 Running Preparing 14 seconds ago
a08aabmfiprh web_server.5 httpd:latest host02 Running Preparing 14 seconds ago
root@host03:~# docker service ps web_server # 副本数增加完毕
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
jykct1jmfrte web_server.1 httpd:latest host03 Running Running 21 minutes ago
n4afxlx16tny web_server.2 httpd:latest host03 Running Running 52 seconds ago
kmtovvs8i1rk web_server.3 httpd:latest host01 Running Running 29 seconds ago
mlsb1ey4n65r web_server.4 httpd:latest host02 Running Running 31 seconds ago
a08aabmfiprh web_server.5 httpd:latest host02 Running Running 31 seconds ago
root@host03:~# docker service ls # 要求副本数和实际副本数均已达到 5
ID NAME MODE REPLICAS IMAGE PORTS
9aa10i3l6xjw web_server replicated 5/5 httpd:latest
设置 swarm-manager 为仅manager模式
root@host03:~# docker node update --availability drain host03 # 将 swarm-manager(host03)设置为仅 manager
host03
root@host03:~# docker node ls # host03 AVAILABILITY 已经变成 Drain
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
hvt2ez9e7zvqm2hz8nix1eke7 host01 Ready Active 18.09.6
asn5ufnogzkyqigk4mizatoer host02 Ready Active 18.09.6
h6rzavsz2vjxstwj3pytiebjb * host03 Ready Drain Leader 18.09.6
root@host03:~# docker service ps web_server # 可以看到 host03 上的容器都已 shutdown,另外在host01 上新起了两个容器
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
tznw0lrn8wh8 web_server.1 httpd:latest host01 Running Running 14 seconds ago
jykct1jmfrte \_ web_server.1 httpd:latest host03 Shutdown Shutdown 15 seconds ago
4x32c9x1hizg web_server.2 httpd:latest host01 Running Running 14 seconds ago
n4afxlx16tny \_ web_server.2 httpd:latest host03 Shutdown Shutdown 15 seconds ago
kmtovvs8i1rk web_server.3 httpd:latest host01 Running Running about an hour ago
mlsb1ey4n65r web_server.4 httpd:latest host02 Running Running about an hour ago
a08aabmfiprh web_server.5 httpd:latest host02 Running Running about an hour ago
弹性收缩,将副本数由 5 降到 3
root@host03:~# docker service scale web_server=3 # 副本数设置为 3
web_server scaled to 3
overall progress: 3 out of 3 tasks
1/3: running [==================================================>]
2/3: running [==================================================>]
3/3: running [==================================================>]
verify: Service converged
root@host03:~# docker service ps web_server # 可以查看编号为 3 和 5 的容器被删除了
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
tznw0lrn8wh8 web_server.1 httpd:latest host01 Running Running 2 minutes ago
jykct1jmfrte \_ web_server.1 httpd:latest host03 Shutdown Shutdown 2 minutes ago
4x32c9x1hizg web_server.2 httpd:latest host01 Running Running 2 minutes ago
n4afxlx16tny \_ web_server.2 httpd:latest host03 Shutdown Shutdown 2 minutes ago
mlsb1ey4n65r web_server.4 httpd:latest host02 Running Running about an hour ago
- 如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)
上一节部署了只有一个副本的 Service,不过对于 web 服务,我们通常会运行多个实例.这样可以负载均衡,同时也能提供高可用. swarm 要实现这个目标非常简单,增加 service 的副本数就 ...
- centos7下安装docker(22.docker swarm-----service)
运行service 执行以下命令: docker service create --name web-server httpd 通过docker service ls查看swarm中的service ...
- 人人都可以开发高可用高伸缩应用——论Azure Service Fabric的意义
今天推荐的文章其实是微软的一篇官方公告,宣布其即将发布的一个支撑高可用高伸缩云服务的框架--Azure Service Fabric. 前两天,微软Azure平台的CTO Mark Russinovi ...
- 无状态服务(stateless service)
一.定义 无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本 ...
- 【阿里云产品公测】弹性伸缩服务ESS之试用初体验
弹性伸缩服务ESS之试用初体验 作者:云郎 2014/10/15 阿里云弹性伸缩服务(Elastic Scaling Service)是根据用户的业务需求和策略,自动调整其弹性计算服务器(ECS)的管 ...
- 这个知识点不错,,学习一下先。。。无状态服务(stateless service)(转)
这样的应用,显得高级一些哟~~:) +================== http://kyfxbl.iteye.com/blog/1831869 ========================= ...
- Windows Azure Service Bus 推动财务服务门户的高可用性和可伸缩性
抵押贷款公司和评估管理公司面临着快速.复杂且数据量极大的业务流程.他们需要可快速.轻松设置且容量几乎无限的可伸缩的企业级服务,来对处理评估订单以及自动化流程本身所产生的所有文档和数据进行管理. 这听起 ...
- 转载文章:Windows Azure 七月份更新:SQL 数据库、流量管理器、自动伸缩、虚拟机
转载文章:Windows Azure 七月份更新:SQL 数据库.流量管理器.自动伸缩.虚拟机 今天上午,我们发布了一些重大的 Windows Azure 更新.这些新的增强功能包括: · SQL 数 ...
- 探索Windows Azure 监控和自动伸缩系列1 - 连接中国区Azure
最近准备基于Microsoft Azure Management Libraries 实现虚拟机的监控.主要的需求就是获取虚拟机内置的性能计数器数据,基于性能计数器实现后续的监控和自动伸缩. 作为这一 ...
随机推荐
- Thinkphp3.2.3中的RBAC权限验证
最近在用TP的RBAC权限控制,在这里记录学习一下.先来看看相关的概念 一.相关概念 访问控制与RBAC模型1.访问控制: 通常的多用户系统都会涉及到访问控制,所谓访问控制,是指通过某种 ...
- JS框架_(JQuery.js)高德地图api
百度云盘 传送门 密码 :ko30 高德地图api效果 <!doctype html> <html> <head> <meta charset="u ...
- pip & conda 换源
conda换源方法具体参考清华大学镜像站Anaconda 镜像使用帮助 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn ...
- 作业要求20191010-3 alpha week 1/2 Scrum立会报告+燃尽图 01
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8746 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...
- 将 vue 的项目放在 手机上查看 及 测试 bug
首先:我们应该让电脑和手机 处在同一个局域网下面,最简单的方法,就是让手机链接电脑的 WiFi ,或者让电脑链接手机的 WiFi ,然后得到我们的 ip 地址 在电脑上获取 ip 地址就行 获取方法: ...
- 一、基础篇--1.2Java集合-Arraylist 与 LinkedList 区别
Arraylist 与 LinkedList 区别 结构上的区别 ArrayList底层实现基于动态数组,LinkedList底层实现基于双向链表. 性能上区别 ArrayList查询快,增删慢 ...
- windows怎么远程访问deepin linux桌面
deepin linux端安装anydesk 1.首先点击打开任务栏上的“深度商店” 2.打开后搜索anydesk. 3.点击进入后按“安装”即可,安装完成即可在“深度商店”点击“打开”运行anyde ...
- 清北学堂2019.8.10 & 清北学堂2019.8.11 & 清北学堂2019.8.12
Day 5 杨思祺(YOUSIKI) 今天的难度逐渐上升,我也没做什么笔记 开始口胡正解 今天的主要内容是最小生成树,树上倍增和树链剖分 最小生成树 Prim 将所有点分为两个集合,已经和点 1 连通 ...
- OpenCV学习笔记(8)——图像平滑
使用不同的低筒滤波器对图像进行模糊 使用自定义的率弄起对图像进行卷积(2D卷积) 2D卷积 与信号一样,我们也可以对2D图像实施低通滤波,高通滤波等.LPF帮助我们去除噪声,模糊图像.而HPF帮助我们 ...
- Emacs 浏览网页
Emacs 浏览网页非常方便,还可以忽略掉那些烦人的小广告.特别是在看小说 的时候~ 在之前了解如何通过Emacs浏览网页时,大部分人使用的是w3m,折腾了半天,没能成功.后来无意间发现 ,有EWW ...