设为首页 收藏本站
查看: 689|回复: 0

[经验分享] docker1.12版本的swarm集群特性

[复制链接]

尚未签到

发表于 2018-5-29 08:54:53 | 显示全部楼层 |阅读模式
    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。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482382-1-1.html 上篇帖子: 用Docker构建LNMP环境(上) 下篇帖子: docker 构建lamp 之wordpress发布(中)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表