开始试用docker的swarm模式
Docker 1.12以及之后的版本集成了swarmkit等编排服务,现在docker的版本为1.12-rc2版本。本文来尝试试用此种模式建立原生的docker集群
本文将包含如下几点:
- 在swarm模式下初始化一个docker引擎的集群
- 添加节点至swarm中
- 发布一个应用服务到swarm中
- 当运行起来之后进行swarm管理
设置
尝试本例子需要如下几点要求:
- 三台网络互通的宿主机:
- 安装1.12或更高版本的docker
- 管理节点的IP地址
- 开启宿主机之间的端口
- TCP端口2377集群管理端口
- TCP与UDP端口7946节点之间通讯端口
- TCP与UDP端口4789 overlay网络通讯端口
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
创建swarm集群
创建管理节点
- 1
- 1
如下所示:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
添加节点到集群
在节点机器上运行如下命令
- 1
- 1
如:
- 1
- 2
- 1
- 2
在manager节点上查看节点
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
发布服务
在manager上执行如下命令:
- 1
- 2
- 1
- 2
docker service create
命令创建一个 service.--name
标签命名service为helloworld.--replicas
标签来详细声明1个运行实体.- 参数
alpine ping docker.com
定义执行pingg docker.com
作为alpine容器的服务.
使用docker service ls
查看服务
- 1
- 2
- 3
- 1
- 2
- 3
使用docker service inspect
审查服务
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
使用docker service tasks <SERVICE-ID>
查看服务运行在哪个节点上
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
Scale service
- 1
- 1
如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
删除service
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
滚动升级
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
--update-parallelism
标签配置服务中同步升级的任务数量.--update-delay
标签配置一个服务任务或一系列任务升级的时延.
node下线
有些时候需要维护一个节点,此时此节点可能会网络断开或者需要关机,造成节点上服务可用。使用docker node update --availability drain <NODE-ID>
将节点下线,swarm会将当前节点上的容器关闭并在其他节点上启动。当维护完成,需要上线是,将节点状态修改为active状态即可,命令如下:docker node update --availability active <NODE-ID>
-
顶
- 3