Coolify logoCoolify

Docker Swarm

Caution

这是一个实验性功能。

在 Coolify 中设置

如果您希望使用 Swarm 来部署资源,您需要将 Swarm 管理器 添加到 Coolify。

可选地,您可以将 Swarm 工作节点 添加到 Coolify。这将允许 Coolify 在 Swarm 工作节点 上进行清理和其他操作。

Docker 注册表

您需要有一个可用的外部 Docker 注册表来使用 Swarm,因为所有工作节点都需要能够拉取您使用 Coolify 构建的镜像。

  • Swarm 管理器需要将镜像推送到 Docker 注册表。
  • Swarm 工作节点需要从 Docker 注册表拉取镜像。

因此,请相应地设置您的 docker 登录凭据。更多信息请参见此处

安装 Swarm 集群

进行中 这只是一个安装简单 Docker Swarm 集群的简要指南。如需更多信息,请参阅官方文档

前置条件

  • 本指南将使用 Hetzner(推荐链接)。您也可以使用任何其他提供商。
  • 您需要至少 3 台具有相同架构(ARM 或 AMD64)的服务器来创建 Docker Swarm 集群。
  • 1 台服务器用于管理器节点。
  • 2 台服务器用于工作节点(如果您愿意,可以添加更多工作节点)。
  • 如果可能,请为所有服务器添加私有网络。

安装 Docker

在所有服务器上安装 Docker。您可以遵循官方文档,或者:

  1. 使用 Rancher 脚本安装
curl https://releases.rancher.com/install-docker/24.0.sh | sh
  1. 使用 Docker 脚本安装
curl https://get.docker.com | sh -s -- --version 24.0

您只需使用上述命令之一。

配置 Docker

所有服务器上,运行以下命令以启动 Docker。

systemctl start docker
systemctl enable docker

Caution

Hetzner 特定配置。Hetzner 服务器使用 MTU 为 1450。您需要配置 Docker 使用相同的 MTU。

管理器上,运行以下命令来配置 Docker。

mkdir -p /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
  "default-network-opts": {
    "overlay": {
      "com.docker.network.driver.mtu": "1450"
    }
  }
}
EOF
systemctl restart docker

创建 Swarm 集群

在管理器节点上,运行以下命令以创建新集群。

# MANAGER_IP = 管理器节点的 IP。如果您有私有网络,请使用私有 IP,例如 10.0.0.x。
docker swarm init --advertise-addr <MANAGER_IP>

此命令将输出一个用于加入集群的命令,该命令将在工作节点上运行。

它看起来可能像这样:

# 不要运行此命令,这只是一个示例,你好!
docker swarm join --token SWMTKN-1-24zvxeydjarchy7z68mdawichvf684qvf8zalx3rmwfgi6pzm3-4ftqn9n8v98kx3phfqjimtkzx 10.0.0.2:2377

验证集群

在管理器节点上运行以下命令以验证集群。

docker node ls

您应该看到类似以下内容:

ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
ua38ijktbid70em257ymxufif *   swarm-manager   Ready     Active         Leader           24.0.2
7rss9rvaqpe9fddt5ol1xucmu     swarm-worker    Ready     Active                          24.0.2
12239rvaqp43gddtgfsdxucm2     swarm-worker    Ready     Active                          24.0.2

使用持久存储进行部署

为了能够部署带有持久存储的服务,您需要在 swarm-workers 上有一个共享卷。这样 Swarm 服务就可以在 swarm-workers 之间移动资源。

您可以随时使用 AWS EFS、NFS、GlusterFS 等服务。

进行中

On this page