Swarm 是 Docker 公司在 2014 年 12 月初发布的一套较为简单的工具,用来管理 Docker 集群,它将一群 Docker 宿主机变成 一个单一的,虚拟的主机。Swarm 使用标准的 Docker API接口作为其前端访问入口。
换言之,各种形式的 Docker Client(docker client in go,docker_py,docker 等)均可以直接与 Swarm 通信。Swarm 几乎全部用 Go 语言来完成开发。Swarmdeamon 只是一个调度器(Scheduler)加路由器(router),Swarm 自己不运行容器,它只是接受 docker 客户端发送过来的请求,调度适合的节点来运行容器,这意味着,即使Swarm 由于某些原因挂掉了,集群中的节点也会照常运行,当 Swarm 重新恢复 运行之后,它会收集重建集群信息。
一、实验环境
主机 | ip |
---|---|
server1(manager) | 172.25.66.1 |
server2(node) | 172.25.66.2 |
server3(node) | 172.25.66.3 |
物理机(用来测试) | 172.25.66.250 |
server1-3安装docker,这里就不做详细说明了
二、Docker swarm集群的搭建
1.在管理节点server1上初始化swarm集群
注意这里的初始化信息一定要记住,否则后面的节点添加会有问题
再server1结点上查看桥接的信息
[root@server1 ~]# yum install -y bridge-utils
[root@server1 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.024284afdac2 no
docker_gwbridge 8000.0242baf2117c no vethdb9c523
在server1上查看docker网络
2.server2,server3(work节点)加入集群
这里添加我们使用server1初始化swarm是给的信息添加
[root@server2 ~]# docker swarm join --token SWMTKN-1-5q67usqkebyg8jsvs7ph0f8fhisvwbtf5vmwkpkf4uq0zvwy16-2w2t0kygvl1usyyp8njimsv5k 172.25.66.1:2377
This node joined a swarm as a worker.
[root@server3 docker]# docker swarm join --token SWMTKN-1-5q67usqkebyg8jsvs7ph0f8fhisvwbtf5vmwkpkf4uq0zvwy16-2w2t0kygvl1usyyp8njimsv5k 172.25.66.1:2377
This node joined a swarm as a worker.
在server1查看节点信息