gpt4 book ai didi

load-balancing - 我正在尝试在 digital ocean 上设置负载均衡器,需要一些建议

转载 作者:行者123 更新时间:2023-12-04 10:35:45 25 4
gpt4 key购买 nike

如何让所有液滴保持相同的内容?

我有 3 个水滴,我想将第一个的内容复制到其他 2 个。
是否有任何选项可以自动执行此操作?

或者如何在我的移动应用程序后端在 PHP 上创建 LB 并且数据经常更新,因此在这种情况下需要帮助。

最佳答案

很难提供具体的答案,因为您的问题非常广泛。

但...

如您所知,最好克隆实例,以便在 LB 之后,每个实例的行为都相同。有很多方法可以做到这一点。据我所知,Digital Ocean 不提供通用机制1。

备注 其他云平台包括实例组的概念,您可以在其中定义模板(d 实例),然后让平台自动为您维护 X 个实例(根据需要添加|删除)。

让我们分解问题:您有一些静态内容(例如 PHP、Web 服务器)和一些动态内容(例如您的数据)。在您的应用程序中将它们分开也会很有用。

静态内容

你在这里有很多选择。最简单的方法可能是创建一个主 Droplet,然后使用 Snapshots 创建主 Droplet 的克隆。 .我建议您编写脚本(例如 doctl )母版的创建,以便您能够在需要时重现其创建。此外,一旦您拥有代码,请将其检入源代码控制工具(供后代使用)。您也可以使用例如doctl 脚本从头开始创建多个相同的 Droplet。

因为想要自动化(云)资源的创建是一种常见的做法,所以有可用的工具来促进这一点。一、流行工具是Terraform而且,虽然我没有使用过它(参见 provider 和 DigitalOcean,你应该能够使用它来创建,不仅是 Droplets,还有负载均衡器。有一个学习曲线,但它可能是一个很好的投资(和 Terraform 的工作超越了 digital ocean )。

一种补充方法是考虑容器化您的应用程序。然后,您的部署脚本将能够拉/运行容器镜像,而不是安装软件。这应该 (!) 创建一个更可预测的部署机制 它使您可以考虑使用面向容器的 (Linux) 操作系统(例如 CoreOSRancherOS )。这些带来的优势包括具有更小的附加表面、更容易的升级和更简单的部署(创建容器操作系统、运行 PHP 应用程序容器),但您必须熟悉它们。

动态内容

如果动态内容是基于文件的,一个常见的解决方案是使用某种形式的共享卷,允许在一个地方管理这些内容,但在多个 Droplet 之间共享。我的理解是 (!?) 您目前不能在多个 Droplet 之间共享一个 Volume。为了解决这个问题,你可能希望探索运行类似 NFS 的东西。这将使多个 Droplet 能够共享文件。或者,您也可以使用 Spaces。最坏的情况是,您可以跨多个 Droplet 复制文件,但要注意可能产生不一致结果的后果。

如果动态内容在数据库中,您可以自己运行数据库(集群)并将每个 Droplet 指向其端点。或者你可以使用 Digital Ocean 的 Managed Databases (service) .

1- Kubernetes

Digital Ocean 包括一个 Kubernetes managed service .

这为您提供了一种部署解决方案的 X 个实例的方法,包括定义负载均衡器和共享(持久)卷,但使用 Kubernetes 可能会满足您的需求(并且还需要您将应用程序容器化)。

也就是说,见 here请注意,这是写 之前 DigitalOcean 提供了其托管的 Kubernetes 产品;原则保持不变。

但是,我建议您阅读 Kubernetes。

在我看来(!),这应该是大多数基于云的应用程序的部署方式。

关于load-balancing - 我正在尝试在 digital ocean 上设置负载均衡器,需要一些建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com