Docker 实践总结(二)

集群简介

Swarm

初始化swarm

方法一

1
docker pull swarm

创建集群token,获取全球唯一的 token,作为集群唯一标识

1
2
docker run --rm swarm create
a253407f93a759e7b1d69a49cf669732

加入集群

1
docker run -d swarm join -addr=192.168.1.228:2379  token://a253407f93a759e7b1d69a49cf669732

方法二

1
docker swarm init --advertise-addr 192.168.1.228


使用下面一段,在其它节点上执行加入集群

1
docker swarm join --token SWMTKN-1-1g17yyrfepskeffufewmgfiewffqemcc8kjsy9x1zbjucqu4ms-dcp6ub8tjc2yq6bh7qbhs926e 192.168.1.228:2377

检查

1
docker node ls

集群管理

离开集群

1
docker swarm leave

部署

1
2
3
4
docker stack deploy -c ws.yml  sys01

-c 指定yaml文件
name stack 名称

检查

1
docker stack ls

stack 详细信息

1
docker stack ps sys01

检查service

1
docker service ls

删除

1
2
docker stack rm sys01
docker service rm xxxx

节点状态

AVAILABILITY 的三种状态:

  • Active:调度器能够安排任务到该节点

  • Pause:调度器不能够安排任务到该节点,但是已经存在的任务会继续运行

  • Drain:调度器不能够安排任务到该节点,而且会停止已存在的任务,并将这些任务分配到其他 Active 状态的节点

MANAGER STATUS 的三种状态

  • Leader:为群体做出所有群管理和编排决策的主要管理者节点

  • Reachable:如果 Leader 节点变为不可用,该节点有资格被选举为新的 Leader

  • Unavailable:该节点不能和其他 Manager 节点产生任何联系,这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点

更新节点

改变节点的可用性(availability)

1
docker node update --availability drain WorkerA

添加/移除标签元数据

1
docker node update --label-add foo --label-add bar=baz WorkerA

类型一:–label-add

类型二:–label-add =

升级/降级节点

1
2
3
[升级] docker node promote WorkerA

[降级] docker node demote WorkerA

基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

docker swarm init #初始化集群
docker swarm join-token worker #查看工作节点的 token
docker swarm join-token manager #查看管理节点的 token
docker swarm join #加入集群中

docker node ls #查看所有集群节点
docker node rm #删除某个节点(-f强制删除)
docker node inspect ##查看节点详情
docker node demote #节点降级,由管理节点降级为工作节点
docker node promote #节点升级,由工作节点升级为管理节点
docker node update #更新节点
docker node ps #查看节点中的 Task 任务


docker service create #部署服务
docker service inspect #查看服务详情
docker service logs #产看某个服务日志
docker service ls #查看所有服务详情
docker service rm #删除某个服务(-f强制删除)
docker service scale #设置某个服务个数
docker service update #更新某个服务
------ 本文结束 ------

版权声明

Medivh's Notes by Medivh is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Medivh创作并维护的Medivh's Notes博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Medivh 博客( http://www.mknight.cn ),版权所有,侵权必究。