将多台 Docker 主机作为一个集群, 并在集群级别上以标准 Docker API 的形式提供服务.

7.3.1 安装 Swarm

image.png

在两台服务器上下载 Swarm 镜像:

image.png

image.png

7.3.2 创建 Swarm 集群

集群发现后端 (discovery backend):

  • 默认是 Docker Hub: 允许用户在 Docker Hub 中注册一个集群, 然后返回一个集群 ID, 之后可以使用该集群 ID 向集群添加额外的节点
  • etcd
  • Consul
  • Zookeeper
  • IP 地址的静态列表
  1. 在 smoker 上创建 Swarm 集群

image.png

  1. 在每个节点上运行 Swarm 代理

image.png

image.png

  1. 列出 Swarm 节点

image.png

  1. 启动 Swarm 管理者

image.png

  1. 在集群中运行 docker info 命令

image.png

7.3.3 创建容器

  1. 运行 Nginx 容器

image.png

  1. 查看运行状态

image.png

上面的容器只运行在两个节点上. Swarm 根据过滤器 (filter) 和策略 (strategy) 的结合来决定在哪个节点上运行容器.

7.3.4 过滤器

过滤器是告知 Swarm 该优先在哪个节点上运行容器的明确指令

5种过滤器:

image.png

7.3.5 策略

策略允许用户用集群节点更隐式的特性来对容器进行调度.

  • 平铺 (Spread)
  • 紧凑 (BinPacking)
  • 随机 (Random)

7.3.6 小结