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。

本文出自 “扮演上帝的小丑” 博客,转载请与作者联系!

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
什么是心脏出血漏洞? CVE-2014-0160,心脏出血漏洞,是一个非常严重的 OpenSSL 漏洞。这个漏洞使得攻击者可以从存在漏洞的服务器上读取64KB大小的内存信息。这些信息中可能包含非常敏感的信息,包括用户请求、密码甚至证书的私钥。 据称,已经有攻击者在某宝上尝试使用漏洞读取数据,在读取200次后,获取了40多个用户名和7个密码。 使用如下的命令查看服务器上的当前版本: openssl version [root@master ~]# openssl version OpenSSL 1.0.1e

Apache运维架构之Apache+PHP - 2016-08-22 14:08:37

当前互联网主流web服务器说明 1、IIS 微软的web服务器 2、apache 中小web服务器主流,web服务器中的老大哥 3、nginx 新兴的web服务器主流 4、tomcat 中小企业动态服务器,互联网java容器主流 5、resin 大型企业动态服务器,互联网java容器主流 apache的特点及应用场合 特点:功能强大,配置简单,速度快,应用广泛,性能稳定可靠,并可做代理服务器和负载均衡 应用场合: 1、使用apache来运行静态html网页,图片,处理静态小文件能力不及nginx 2、使用
shyis最近微软中国Azure更新速度似乎已经超越任何时期了,前两天刚刚更新的Azure云助理,让众多Azure用户实现在移动端灵活的管理Azure资源,相信对于云服务来讲这也是未来不可或缺的管理方式之一。说到管理方式,不得不说微软中国Azure近期更新的另一大神器预览版门户。 说到Azure预览版门户,其实已经不是什么新玩意,毕竟在国际版Azure中已经预览了非常之久了。但对于中国版Azure来说毕竟是一个非常重要的更新,今天给大家带来的就是中国版Azure的预览版介绍以及通过配置固定公网IP作为实例
首先到Github上下载Pyenv相应的一键安装脚本, $curl-Lhttps://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer|bash 安装完毕,设置环境变量,设置环境变量,可以添加到个人家目录的.bashrc或.bash_profile及系统的全 局的/etc/profile, #Loadpyenvautomaticallybyadding#thefollowingto~/.bash_profil
nginx网站被持续攻击1个月后最终防攻策略 上上个月架构全部迁移上云以后,总的来说比较稳定,业务量也上来,可爱的坏人也来了,7X24小时不停恶意攻击我的网站, 第一次收到报警是网站流入流量1分钟以内连续3次超过1000000bps,换算下1M/s秒 ,平时没那么大流量的啊,当时刚好在朋友家玩,于赶紧开本本连vpn检查,发现全是访问同一个页面的请求,而且是正常访问http 200,应该是被恶意攻击了。 发现问题 : 发现问题第一反应,赶紧将请求地址截图发给开发们看看,问问这个具体是什么? 最后得知是为短信
这章介绍如何在之前单台后端数据库的基础上建立镜像数据库 Lync Server 后端就是SQL Server 数据库,后端高可用在跟Lync集成后跟以往的高可用配置有所不同, 高可用是一种架构,高可用的架构中,硬件或软件出现故障的情况下继续能够对外提供服务, 高可用分为两种,第一种是故障转移群集(Failover Cluster),主服务器宕机后,切换备用服务器 第二种是网络负载均衡(NLB),NLB最常见的案例就是Web服务器,多台服务器同时分摊用户访问流量 首先说明一下部署条件,我们之前已经介绍过SQ
用户组和权限管理 一、了解和使用批量新建用户和批量修改用户密码: ##用户创建的模板和配置文件的存放位置:/etc/default/useradd;/etc/skel/* ;/etc/login.defs## 批量新建用户(newusers):适合用于新老机器转换时,迁移系统上的用户。 使用格式: newusers passwd filename(.txt格式) ——批量创建用户 命令格式:newuser filename 使用该方法批量创建的新用户其实并没有设置密码的,但使用命令#getent shad
最近收到线上一台DB服务器ping丢包,丢包率一直在30%左右。通过Zabbix监控查看了服务器CPU,内存都很正常,网卡流量也不高,基本在100M左右。 首先确认一下服务器硬件是否正常,由于没有收到硬件报警。登录服务器通过HP管理工具在此确认了硬件信息都正常(硬盘,缓存卡,内存等)。 第二步在排查一下系统问题,通过top,ps等命令也没有发现什么异常,基本上排除系统问题。 第三步查看了一下该服务器上联监控机端口流量,也都很正常,由于收到只有这一台服务器报警,也排除了上联交换机故障问题。 最后向同事咨询了
Office管理模板提供了对Office各版本的自定义工作,那么对于Outlook客户端在企业应用中会有很多的需求比如: 统一配置Outlook安全发件人和收件人; 定义Outlook OST和PST默认存放路径; 配置允许和禁用自动下载图片; 日历设置、邮件格式配置、Exchange缓存模式配置…… 下载Office管理模板,对应的模板下载链接如下: Office2010 管理模板 https://www.microsoft.com/en-us/download/details.aspx?id=1896
这章介绍如何在之前单台后端数据库的基础上建立镜像数据库 Lync Server 后端就是SQL Server 数据库,后端高可用在跟Lync集成后跟以往的高可用配置有所不同, 高可用是一种架构,高可用的架构中,硬件或软件出现故障的情况下继续能够对外提供服务, 高可用分为两种,第一种是故障转移群集(Failover Cluster),主服务器宕机后,切换备用服务器 第二种是网络负载均衡(NLB),NLB最常见的案例就是Web服务器,多台服务器同时分摊用户访问流量 首先说明一下部署条件,我们之前已经介绍过SQ