为我的用例比较 HA 集群平台
Comparing HA-cluster platforms for my usecase
我一直在尝试 Docker Swarm 并研究其他解决方案,例如 Kubernetes,但我无法找出最适合我的用例的解决方案,我需要一些帮助来自专家,非常欢迎您的意见。
我对我要构建的云有一些要求,它(显然)应该尽可能便宜、简单和可靠:
- 托管无状态容器,例如 Web 容器,具有生产质量的负载均衡器和自动 HTTPS (Let's Encrypt)
- 以非集群方式托管有状态容器,例如 MySQL(因此:我只有一个副本(因为我不需要在那里扩展),但如果该服务器发生故障,它如果该容器自动移动到另一个主机,而不会丢失数据,并且采用集群方法(例如 Galeria),那就太好了。
- 这些数据库需要快速存储,因此最好先将它们的内容存储在本地,当它们移动时,卷也随之移动。
- 以开源解决方案可能的最快磁盘速度自动在主机之间共享卷。
- 最好留在我当前的数据中心,我在 SSD 存储上托管我的 VPS(我有三个,通过 10GBit 链接连接)
- 说明:我想继续使用我当前的数据中心,因为我喜欢他们的支持,他们有简单的自动(非信用卡,因为我 运行ning 一家荷兰公司)付款,他们负担得起他们拥有出色的认证(例如 ISO 27001:2013、PCI DSS、ISO 9001:2008、NEN 7510 等)。
- 您可能会建议迁移到 Azure、AWS 或 GCP,但我不愿意。
- 我不介意构建自己的集群,只要它是可行的,单独的,在(相对)生产质量。
请记住,我不会 运行 提供很多服务(只有 10-20 个),但我确实需要生产质量和高可用性。
此外,我更喜欢 运行 通常不在容器中 运行 的东西,无论如何在容器生态系统中都具有更大的灵活性,并在主机自动失败时让它们重新启动。
我已经考虑过的事情:
- 运行 Docker Swarm,带有 Traefik 和 Gluster:Traefik 看起来很稳定(大部分时间),自动获取证书,并且可以使用 Gluster - 轻松地 - 共享卷。但是:没有支持生产质量的 Gluster 卷驱动程序,因此我必须使用绑定安装,我 运行 进入权限问题。
- 运行 Kubernetes 带有一些入口控制器(例如 cert-manager,但不是用于生产,或 Traefik,或 Voyager?)和用于存储卷的 Gluster 系统,但 Kubernetes 似乎过于复杂。
- 无论如何都会去 AWS 或 GCP,但他们的定价令人困惑并且他们用信用卡支付。
- 使用 Flynn 之类的东西,因为反正我只有 web 应用程序,而且 Heroku 风格的系统看起来很有趣,但它们在稳定版本中仍然没有 HTTPS 支持:https://github.com/flynn/flynn/issues/1995
老实说,从纯粹的 ROI 和运营负载的角度来看,在您当前的数据中心使用容器 运行 次似乎不是解决此问题的正确方法。
从运营商的角度来看,当存在难以用 VMs/VPSes 解决的租赁和异构问题时,容器系统是有意义的,并且工厂的规模至少有几十个节点。 运行 任何采用 HA 方式的容器基础设施都需要大量工作,并且有很多极端情况需要专门的专家关注。需求必须足够大才能使这项投资有意义。
所描述的工厂具有冗余,可以 运行 在 handful/dozen VMs/VPSes 上。它需要一些仔细的架构来实现所需的可用性水平,但是在 VM 上管理数据库和无状态应用程序以实现 HA 的模式已经非常成熟,比如说,具有 3 倍的可扩展性。
容器世界中仍有许多发现。特别是对于 Kubernetes,每个季度都会发布一个全新的版本,其中包含新的极端案例。
当然,学习它真的很有趣,但它仍然处于看到它工作时令人惊叹的状态,而不是无聊。
我一直在尝试 Docker Swarm 并研究其他解决方案,例如 Kubernetes,但我无法找出最适合我的用例的解决方案,我需要一些帮助来自专家,非常欢迎您的意见。
我对我要构建的云有一些要求,它(显然)应该尽可能便宜、简单和可靠:
- 托管无状态容器,例如 Web 容器,具有生产质量的负载均衡器和自动 HTTPS (Let's Encrypt)
- 以非集群方式托管有状态容器,例如 MySQL(因此:我只有一个副本(因为我不需要在那里扩展),但如果该服务器发生故障,它如果该容器自动移动到另一个主机,而不会丢失数据,并且采用集群方法(例如 Galeria),那就太好了。
- 这些数据库需要快速存储,因此最好先将它们的内容存储在本地,当它们移动时,卷也随之移动。
- 以开源解决方案可能的最快磁盘速度自动在主机之间共享卷。
- 最好留在我当前的数据中心,我在 SSD 存储上托管我的 VPS(我有三个,通过 10GBit 链接连接)
- 说明:我想继续使用我当前的数据中心,因为我喜欢他们的支持,他们有简单的自动(非信用卡,因为我 运行ning 一家荷兰公司)付款,他们负担得起他们拥有出色的认证(例如 ISO 27001:2013、PCI DSS、ISO 9001:2008、NEN 7510 等)。
- 您可能会建议迁移到 Azure、AWS 或 GCP,但我不愿意。
- 我不介意构建自己的集群,只要它是可行的,单独的,在(相对)生产质量。
请记住,我不会 运行 提供很多服务(只有 10-20 个),但我确实需要生产质量和高可用性。
此外,我更喜欢 运行 通常不在容器中 运行 的东西,无论如何在容器生态系统中都具有更大的灵活性,并在主机自动失败时让它们重新启动。
我已经考虑过的事情:
- 运行 Docker Swarm,带有 Traefik 和 Gluster:Traefik 看起来很稳定(大部分时间),自动获取证书,并且可以使用 Gluster - 轻松地 - 共享卷。但是:没有支持生产质量的 Gluster 卷驱动程序,因此我必须使用绑定安装,我 运行 进入权限问题。
- 运行 Kubernetes 带有一些入口控制器(例如 cert-manager,但不是用于生产,或 Traefik,或 Voyager?)和用于存储卷的 Gluster 系统,但 Kubernetes 似乎过于复杂。
- 无论如何都会去 AWS 或 GCP,但他们的定价令人困惑并且他们用信用卡支付。
- 使用 Flynn 之类的东西,因为反正我只有 web 应用程序,而且 Heroku 风格的系统看起来很有趣,但它们在稳定版本中仍然没有 HTTPS 支持:https://github.com/flynn/flynn/issues/1995
老实说,从纯粹的 ROI 和运营负载的角度来看,在您当前的数据中心使用容器 运行 次似乎不是解决此问题的正确方法。
从运营商的角度来看,当存在难以用 VMs/VPSes 解决的租赁和异构问题时,容器系统是有意义的,并且工厂的规模至少有几十个节点。 运行 任何采用 HA 方式的容器基础设施都需要大量工作,并且有很多极端情况需要专门的专家关注。需求必须足够大才能使这项投资有意义。
所描述的工厂具有冗余,可以 运行 在 handful/dozen VMs/VPSes 上。它需要一些仔细的架构来实现所需的可用性水平,但是在 VM 上管理数据库和无状态应用程序以实现 HA 的模式已经非常成熟,比如说,具有 3 倍的可扩展性。
容器世界中仍有许多发现。特别是对于 Kubernetes,每个季度都会发布一个全新的版本,其中包含新的极端案例。
当然,学习它真的很有趣,但它仍然处于看到它工作时令人惊叹的状态,而不是无聊。