docker1.12版本之后,集成了swarmcontrol模块,立即应用dokcer-engin就可以轻松组建Docker集群,不需要像以前一样由第三方来配备。
自然环境:
管理器/节点1:swarm_node1
节点2:蜂群节点2
1:首先在每个连接点上安装最新版本的dokcer。
# curl -fsSL https://test.docker.com/ | sh # docker -v Docker version 1.12.0-rc4, build e4a0dbc2:重置节点1上的群集群
群组节点1:
[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:cda112fa02a5c17850856b4d65366bb8484bcb204a46ae97063649a5545e277d \ 192.168.1.131:23773.根据提示,将node2添加到swarm集群中。
群组节点2:
[root@swarm_node2 ~]# docker swarm join --secret dm18yjza2eb00wsbbk1hleq8q --ca-hash sha256:cda112fa02a5c17850856b4d65366bb8484bcb204a46ae97063649a5545e277d 192.168.1.131:2377 This node joined a Swarm as a worker.提醒连接点加成功。
4.要查询集群情况,需要检查管理方法连接点node1:
[root@swarm_node1 ~]# docker swarm inspect [ { "ID": "5kx8spry37citf16ty448y65e", "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.QnzNZ7XDKkP20MN8027N4gxm" }, { "Role": "manager", "Autoaccept": false, "Secret": "$2a$10$oqvNfMPFiKIrEvYrZENRGOxsJly8.QnzNZ7XDKkP20MN8027N4gxm" } ] }, "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能够看到每个连接点的情况(主动)和人物角色(领导者)等。
5:服务管理方法
1.12添加服务指令以管理服务项目。例如,您必须有一个测试服务项目,并且您必须有两个工具来 *** 作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 5rw3fr6xdl5kojhh28qzg8yos test.1 test centos Preparing 21 seconds ago Running swarm_node1 1l9siyzbflljowd543c5ehdil test.2 test centos Preparing 21 seconds ago Running swarm_node2-RepicaS2指定服务项目数为2,可以看到一艘船分别运行在Node1和Node2上,构成一个测试服务项目。
6.不正确的维修6:服务和船只转移。
服务新特点的亮点是不正确的转修制度。如果某个连接点上的docker服务项目退出,或者网络服务器出现常见故障,swarm集群会检查服务是否发生了变化。如果发现某个连接点有通病,会在其他连接点对器皿进行维修,保证服务的细节。
比如这个时候我让swarm_node2退出swarm集群:
[root@swarm_node2 ~]# docker swarm leave Node left the swarm.再次查询测试服务项目:
可以看出,服务项测试仍然维持两条血管,所有血管都转移到node1,因为node2已经退出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)