Docker 1.12 版本 Docker Swarm 集群

docker 1.12 版本 的新特性

(1)docker swarm:集群管理,子命令有init, join, leave, update

(2)docker service:服务创建,子命令有create, inspect, update, remove, tasks

(3)docker node:节点管理,子命令有accept, promote, demote, inspect, update, tasks, ls, rm

(4)docker stack/deploy:试验特性,用于多应用部署, 类似与 docker-compose 中的特性。

Docker 1.12 版本 Docker Swarm 集群

我在使用的时候还是 测试版本,所以使用

wget -qO- https://test.docker.com/ | sh

进行安装配置

安装完毕以后:

[root@swarm-manager ~]# docker version Client: Version: 1.12.0-rc2 API version: 1.24 Go version: go1.6.2 Git commit: 906eacd Built: OS/Arch: linux/amd64 Server: Version: 1.12.0-rc2 API version: 1.24 Go version: go1.6.2 Git commit: 906eacd Built: OS/Arch: linux/amd64

一、 我们首先来看看 1.12 中 新特性里面的 内置 swarm 命令 (swarmkit采用raft协议构建集群)

[root@swarm-manager ~]# docker swarm --help Usage: docker swarm COMMAND Manage Docker Swarm Options: --help Print usage Commands: init Initialize a Swarm join Join a Swarm as a node and/or manager update Update the Swarm leave Leave a Swarm inspect Inspect the Swarm Run 'docker swarm COMMAND --help' for more information on a command.

这里 命令有 5个

Commands:
init Initialize a Swarm
join Join a Swarm as a node and/or manager
update Update the Swarm
leave Leave a Swarm
inspect Inspect the Swarm


1. init 初始化,一个 Swarm 集群,执行效果:

[root@swarm-manager ~]# docker swarm init Swarm initialized: current node (0vwpni05mew2j84i6gjet44iu) is now a manager.

这里显示 初始化了一个 Swarm 集群,并把这机器做为 管理节点。

[root@swarm-manager ~]#docker node ls ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS 0vwpni05mew2j84i6gjet44iu * swarm-manager Accepted Ready Active Leader

执行 docker node ls 可以查看 Swarm 的集群情况 (只能在 manager 中执行)

[root@swarm-manager ~]# netstat -lan|grep 2377

可以看到 群集开放了一这个 2377 的端口。

默认绑定 0.0.0.0:2377 ,当然我们也可以使用 docker swarm init --listen-addr <MANAGER-IP>:<PORT> 进行绑定ip

2377 这个端口是用于 Swarm 中 node 节点加入使使用的。

2. join 加入 Swarm 集群, 可加入做为 node 节点,也可加入 作为 管理节点。

[root@swarm-node-1 ~]#docker swarm join 10.6.0.140:2377 This node joined a Swarm as a worker.

这里在 node-1 里面执行了 join 命令,加入了 10.6.0.140 这个 manager 这个 Swarm 集群里

[root@swarm-manager ~]#docker node ls ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS 0vwpni05mew2j84i6gjet44iu * swarm-manager Accepted Ready Active Leader 4mqsmp0gzlqeicit98ce8wh2q swarm-node-1 Accepted Ready Active

这里可以看到 node-1 已经加入到 swarm 的集群里面来了。

3. update 命令, 只提示 updated ,具体作用尚不明白,应该是立刻刷新 swarm 的群集信息

[root@swarm-manager ~]#docker swarm update Swarm updated.

4. leave 命令, 离开 Swarm 集群, 一个docker 只能加入一个node.

[root@swarm-node-1 ~]#docker swarm leave 10.6.0.140:2377

5. inspect 命令, 查询 Swarm 集群 的整体信息。 (只能在 manager 中执行)

[root@swarm-manager ~]#docker swarm inspect [ { "ID": "c052zw5ll0ugw08shg2xf7ajp", "Version": { "Index": 11 }, "CreatedAt": "2016-06-23T02:09:18.935434519Z", "UpdatedAt": "2016-06-23T02:09:19.155114277Z", "Spec": { "Name": "default", "AcceptancePolicy": { "Policies": [ { "Role": "worker", "Autoaccept": true }, { "Role": "manager", "Autoaccept": false } ] }, "Orchestration": { "TaskHistoryRetentionLimit": 10 }, "Raft": { "SnapshotInterval": 10000, "LogEntriesForSlowFollowers": 500, "HeartbeatTick": 1, "ElectionTick": 3 }, "Dispatcher": { "HeartbeatPeriod": 5000000000 }, "CAConfig": { "NodeCertExpiry": 7776000000000000 } } } ]

二、 接下来我们来看看 service 命令。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/163d9f6e5ece38e97dbc170f36dc2820.html