---
title: 集群（高级）
description: "了解如何在 Dokploy 中使用 Docker Swarm 设置和管理集群。"
sidebar:
  order: 1
---

对于大多数情况，除非您需要扩展应用程序，否则您可能不需要使用集群。集群是由多个节点组成的，它们协同工作以提供一个统一的服务。在 Dokploy 中，集群管理着一组服务器，共同协作以提供这一统一服务。

我们在后台使用 Traefik 来为应用程序进行流量负载均衡。

建议在使用集群之前先阅读 [Traefik 文档](https://doc.traefik.io/traefik/routing/providers/swarm/)，以更好地理解它的工作原理。

要开始向您的集群添加节点，您需要一个注册表。节点需要注册表来拉取镜像。

## 要求

- 已安装 Dokploy 的服务器。
- 用于存储镜像的注册表。
- 用于添加为节点的额外服务器（VPS）。

## 注册表选项

我们提供两种方法将注册表添加到您的集群中：

- **自定义注册表（免费）**：在您的服务器上设置私有注册表。
- **外部注册表（付费）**：使用外部注册表，如 Docker Hub、DigitalOcean、AWS ECR 等。

您可以看到可以添加两种类型的注册表：

<ImageZoom src="/assets/images/cluster/registry.png" width={800} height={630} alt='home og image' className="rounded-lg" />

## 向集群添加节点

一旦有了注册表，您可以通过以下步骤向集群添加节点：

1. 点击 `Add Node` 按钮。
2. 您将看到两个标签：`Worker` 和 `Manager`。
3. 选择您要添加的节点类型。
4. 按照提供的两步进行操作：
   - 安装 Docker 引擎。
   - 安装 Dokploy 代理。这两个节点类型的步骤是相同的。
5. 在新服务器上运行提供的命令。
6. 运行命令后，进入 `server/settings/cluster`。您将在表格中看到 Worker 和 Manager 节点的条目。

<ImageZoom src="/assets/images/cluster/nodes.png" width={800} height={630} alt='home og image' className="rounded-lg" />
<ImageZoom src="/assets/images/cluster/cluster.png" width={800} height={630} alt='home og image' className="rounded-lg" />
<ImageZoom src="/assets/images/cluster/application.png" width={800} height={630} alt='home og image' className="rounded-lg" />

## 部署应用程序

一旦您将节点连接到集群，您可以按以下步骤部署应用程序：

1. 在项目中创建一个应用程序。
2. Fork 仓库 [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test)。
3. 将其保存为 GitHub 提供商。
4. 进入应用程序的高级选项卡。
5. 在“集群设置”部分：
   - 更改副本数量（默认是 1）。
   - 选择节点拉取镜像的注册表。
6. 现在，您可以将应用程序部署到集群（通过点击 `Deploy` 按钮）。

事实上，这是实现多节点部署的一个简单方法。Traefik 将处理负载均衡，并将流量路由到应用程序最可用的节点。

要进一步增强此设置，您可以使用 AWS、DigitalOcean 或 Google Cloud 等服务的负载均衡器。这些负载均衡器在路由请求之前会进行健康检查，以确保只有健康的节点接收流量。如果节点未通过健康检查，负载均衡器将自动将请求路由到另一个节点。此设置提供了更稳健和可扩展的部署。

要向集群添加管理节点，请按照添加 Worker 节点的相同步骤进行操作。然而，如果运行 Dokploy 的管理节点发生故障，所有其他节点将变得不可访问。这是因为我们目前为集群设置了单一入口点。为确保高可用性，您应该有多个管理节点。

要实现这一点，您需要将所有持久性和 Traefik 信息复制到新的管理节点。这将为集群创建多个入口点。您可以使用 rsync、aws data sync 或其他工具在节点之间同步所有必要信息。

## 自定义应用程序

您可以在“Swarm 设置”部分自定义应用程序。在这里，您几乎可以修改与 Swarm 应用模式相关的所有设置。

界面中提供了每个设置的占位符和预期格式。所有字段必须为 JSON 值。

#### 可自定义设置：

- 健康检查
- 重启策略
- 放置策略
- 更新配置
- 回滚配置
- 模式
- 网络
- 标签

<ImageZoom src="/assets/images/cluster/swarm-settings.png" width={800} height={630} alt='home og image' className="rounded-lg" />