Swarm 模式入门

本教程向您介绍 Docker Engine Swarm 模式的功能。你 在开始之前,可能需要熟悉关键概念

本教程将指导您完成:

  • 在 swarm 模式下初始化 Docker 引擎集群
  • 向 swarm 添加节点
  • 将应用程序服务部署到 swarm
  • 在一切运行完毕后管理 swarm

本教程使用在 终端窗口。

如果您是 Docker 的新用户,请参阅关于 Docker Engine

建立

要运行本教程,您需要:

三台联网主机

本教程需要三个 Linux 主机,这些主机已安装 Docker 并且可以 通过网络进行通信。这些可以是物理机、虚拟机、 Amazon EC2 实例,或以其他方式托管。查看部署到 Swarm 了解主机的一种可能设置。

其中一台机器是管理器(称为),其中两台是 worker ( 和 )。manager1worker1worker2

注意

您也可以按照许多教程步骤来测试单节点 swarm,在这种情况下,您只需要一台主机。多节点命令不起作用,但您可以初始化群、创建服务并扩展它们。

在 Linux 计算机上安装 Docker Engine

如果您使用的是基于 Linux 的物理计算机或云提供的计算机作为 hosts,只需按照适用于您的平台的 Linux 安装说明进行操作即可。启动这三台机器,您就准备好了。您可以同时测试 Linux 计算机上的单节点和多节点 swarm 方案。

管理器计算机的 IP 地址

必须将 IP 地址分配给主机可用的网络接口 操作系统。群中的所有节点都需要连接到 Manager IP 地址。

由于其他节点通过其 IP 地址联系管理器节点,因此您应该使用 固定 IP 地址。

您可以在 Linux 或 macOS 上运行以查看 可用的网络接口。ifconfig

本教程使用 : 。manager1192.168.99.100

在主机之间打开协议和端口

以下端口必须可用。在某些系统上,这些端口默认处于打开状态。

  • 端口 TCP,用于与 Manager 节点进行通信以及在 Manager 节点之间进行通信2377
  • 端口 TCP/UDP 用于覆盖网络节点发现7946
  • 用于覆盖网络流量的端口 UDP(可配置)4789

如果您计划创建加密的覆盖网络 (), 您还需要确保允许 IP 协议 50 (IPSec ESP) 流量。--opt encrypted

Port 是 Swarm 数据路径端口(也称为 VXLAN 端口)的默认值。 防止任何不受信任的流量到达此端口非常重要,因为 VXLAN 不会 提供身份验证。此端口只能向受信任的网络开放,绝不能在 边界防火墙。4789

如果 Swarm 流量遍历的网络不完全可信,强烈建议 使用加密的覆盖网络。如果加密的覆盖网络独占使用,则某些 建议进行额外的强化:

# Example iptables rule (order and other tools may require customization)
iptables -I INPUT -m udp --dport 4789 -m policy --dir in --pol none -j DROP

后续步骤

接下来,您将创建一个 swarm。