docker1.12版本的swarm集群特性
docker1.12版本之后集成了swarm模块,直接使用dokcer-engin就能很方便地创建一个docker集群,不用再像以前那样第三方配置。
环境:
manager/node1 : swarm_node1
node2 : swarm_node2
1:首先在各节点上安装最新版dokcer
# curl -fsSL https://test.docker.com/ | sh # docker -v Docker version 1.12.0-rc4, build e4a0dbc
2:在node1上初始化一个swarm集群
swarm_node1:
[root@swarm_node1 ~]# docker swarm init No --secret provided. Generated random secret: dm18yjza2eb00wsbbk1hleq8q Swarm initialized: current node (4abdf6see9vqr83emyhdf529s) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --secret dm18yjza2eb00wsbbk1hleq8q \ --ca-hash sha256:cda112fa02a5c17850852b4d65366bb8484bcb204a46ae97063648b5545e277d \ 192.168.1.131:2377
3:根据提示,把node2添加进swarm集群
swarm_node2:
[root@swarm_node2 ~]# docker swarm join --secret dm18yjza2eb00wsbbk1hleq8q --ca-hash sha256:cda112fa02a5c17850852b4d65366bb8484bcb204a46ae97063648b5545e277d 192.168.1.131:2377 This node joined a Swarm as a worker.
提示节点添加成功。
4:查看集群状态,需在管理节点node1上:
[root@swarm_node1 ~]# docker swarm inspect [ { "ID": "0kx8spry37citf16ty448y65e", "Version": { "Index": 11 }, "CreatedAt": "2016-08-05T02:09:17.248225691Z", "UpdatedAt": "2016-08-05T02:09:17.861408652Z", "Spec": { "Name": "default", "AcceptancePolicy": { "Policies": [ { "Role": "worker", "Autoaccept": true, "Secret": "$2a$10$oqvNfMPFiKIrEvYrZENRGOxsJly8.QnzNZ7XDKkP20MN8027N3gxm" }, { "Role": "manager", "Autoaccept": false, "Secret": "$2a$10$oqvNfMPFiKIrEvYrZENRGOxsJly8.QnzNZ7XDKkP20MN8027N3gxm" } ] }, "Orchestration": { "TaskHistoryRetentionLimit": 10 }, "Raft": { "SnapshotInterval": 10000, "LogEntriesForSlowFollowers": 500, "HeartbeatTick": 1, "ElectionTick": 3 }, "Dispatcher": { "HeartbeatPeriod": 5000000000 }, "CAConfig": { "NodeCertExpiry": 7776000000000000 } } } ] [root@swarm_node1 ~]# docker node ls ID HOSTNAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS 4abdf6see9vqr83emyhdf529s * swarm_node1 Accepted Ready Active Leader cs95yh0c4c0fo892996m5wozk swarm_node2 Accepted Ready Active
可以看到各节点的状态(Active)和角色(Leader)等。
5:service管理
1.12新增了service命令,用于管理一个服务。例如我们需要一个test的服务,需要两个容器,运行ping的命令:
[root@swarm_node1 ~]# docker service create --name test --replicas 2 centos ping 127.0.0.1 bgach5ib1uoubo2ljarrx48xu [root@swarm_node1 ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND bgach5ib1uou test 0/2 centos ping 127.0.0.1 [root@swarm_node1 ~]# docker service tasks test ID NAME SERVICE IMAGE LAST STATE DESIRED STATE NODE 5rw3fr6xdl3kojhh28qzg8yos test.1 test centos Preparing 21 seconds ago Running swarm_node1 1l9siyzbflljowd543c5ehdil test.2 test centos Preparing 21 seconds ago Running swarm_node2
--repicas 2指定了服务的个数为2,可以看到在node1,node2上分别跑了一个容器,组成了一个test的服务。
6:service的错误恢复与容器迁移。
service的新特性最大的亮点是错误迁移与恢复的机制,如果某一个节点上的docker服务下线了,或者服务器出现故障,swarm集群会检测service是否发生变动,如果发现某个节点故障,会在另外的节点恢复容器,以保证service的完整。
比如,这时,我让swarm_node2退出swarm集群:
[root@swarm_node2 ~]# docker swarm leave Node left the swarm.
再查看test服务:
[root@swarm_node1 ~]# docker service tasks test ID NAME SERVICE IMAGE LAST STATE DESIRED STATE NODE 5rw3fr6xdl3kojhh28qzg8yos test.1 test centos Preparing 5 minutes ago Running swarm_node1 9pzt555uzeswik14lj6bp96hf test.2 test centos Preparing about a minute ago Running swarm_node1
可以看到test这个服务依旧保持了2个容器,而且由于node2已经下线,容器全部迁移到了node1。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CentOS下搭建cacti监控
一、cacti 监控软件简介 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。 2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量 3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。 二、搭建cacti 监控环境 1、搭建环境介绍: 服务端 CentOS *.*.*.* 客户端 任意网络设备 192.168.1.110 2、关闭iptables和SElinux [root@localhost configs]# iptable...
- 下一篇
一次由于网卡流量跑满引起的服务器丢包总结
最近收到线上一台DB服务器ping丢包,丢包率一直在30%左右。通过Zabbix监控查看了服务器CPU,内存都很正常,网卡流量也不高,基本在100M左右。 首先确认一下服务器硬件是否正常,由于没有收到硬件报警。登录服务器通过HP管理工具在此确认了硬件信息都正常(硬盘,缓存卡,内存等)。 第二步在排查一下系统问题,通过top,ps等命令也没有发现什么异常,基本上排除系统问题。 第三步查看了一下该服务器上联监控机端口流量,也都很正常,由于收到只有这一台服务器报警,也排除了上联交换机故障问题。 最后向同事咨询了服务器承载业务类型,每2分钟会同步大量的数据文件到该服务器上面,然后用sar命令查看一下网卡流量,发现发送流量瞬间在12万KB/s,换算成b/s基本上在940-950Mb/s,意味着千兆网卡流量基本上爆满,才会引起服务器ping丢包。 由于我的监控是每5分钟抓一次,所以对应服务器瞬间高流量都没有获取到,还得优化一下监控时间间隔。 下面顺便总结一下sar命令常用的选项,sar命令行的常用格式如下: sar选项取样时间间隔输出次数 1)查看CPU信息,1表示1秒钟取一次值,2表示采集2次...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题