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。您可以遵循官方文档,或者:
- 使用 Rancher 脚本安装
curl https://releases.rancher.com/install-docker/24.0.sh | sh- 使用 Docker 脚本安装
curl https://get.docker.com | sh -s -- --version 24.0您只需使用上述命令之一。
配置 Docker
在所有服务器上,运行以下命令以启动 Docker。
systemctl start docker
systemctl enable dockerCaution
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 等服务。
进行中
