为我的用例比较HA群集平台

Chr*_*ens 5 cluster-computing production-environment docker kubernetes docker-swarm

我一直在尝试使用Docker Swarm并研究其他解决方案,例如Kubernetes,但我无法弄清楚什么对我的用例最好,我可以使用专家的帮助,所以非常欢迎您的意见.

我对我想要构建的云有一些要求,它(显然)应尽可能便宜,简单和可靠:

  • 托管无状态容器,例如Web容器,具有带自动HTTPS的生产质量负载均衡器(Let's Encrypt)
  • 主机有状态容器,例如MySQL,都采用非集群方式(所以:我只有一个副本(因为我不需要在那里进行扩展),但如果该服务器出现故障,那么如果容器移动到另一个容器会很好自动托管,无数据丢失)和集群方式(例如Galeria).
    • 这些数据库需要快速存储,因此最好它们首先在本地存储它们的东西,当它们移动时,卷随它们移动.
  • 使用开源解决方案可能的最快的diskpeed自动共享主机之间的卷.
  • 最好留在我当前的数据中心,在那里我托管我的VPS(我有三个,连接10GBit链接)在SSD存储上
    • 说明:我想留在我当前的数据中心,因为我喜欢他们的支持,他们有简单的自动(非信用卡,因为我经营荷兰公司)付款,他们是负担得起的,他们有很好的认证(如ISO 27001 :2013年,PCI DSS,ISO 9001:2008,NEN 7510等).
    • 您可能会建议迁移到Azure,AWS或GCP,但我不愿意.
    • 我不介意建立我自己的集群,只要它可以单独使用(相对)生产质量.

请记住,我没有运行很多服务(只有10-20),但我确实需要生产质量和高可用性.

此外,我更喜欢运行通常不在容器中运行的东西,无论如何在容器生态系统中具有更大的灵活性,并在主机自动失败时重新启动它们.


我已经考虑过的事情:

  • 使用Traefik和Gluster运行Docker Swarm:Traefik似乎稳定(大部分时间),自动获取证书,Gluster可以轻松地用于共享卷.但是:没有支持的生产质量Gluster卷驱动程序,因此我必须使用绑定挂载,并且我遇到权限问题.
  • 使用一些入口控制器运行Kubernetes(例如cert-manager,但那不是用于生产,或Traefik或Voyager?)和用于存储卷的Gluster系统,但Kubernetes似乎过于复杂.
  • 无论如何都要去AWS或GCP,但他们的定价令人困惑,他们用信用卡付款.
  • 使用像Flynn这样的东西,因为我只有Web应用程序,Heroku样式系统看起来很有趣,但它们在稳定版本中仍然没有HTTPS支持:https://github.com/flynn/flynn/issues/1995

Jon*_*ton 1

老实说,从纯粹的投资回报率和操作负载的角度来看,听起来当前数据中心的容器运行时并不是解决此问题的正确解决方案。

从运营商的角度来看,当存在虚拟机/VPS 难以解决的租赁和异构问题,并且工厂规模至少有数十个节点时,容器系统就有意义。以 HA 方式运行任何容器基础设施都需要大量工作,并且有许多特殊情况需要专门的专家关注。需求必须足够大,这样投资才有意义。

所述工厂具有冗余,可以在少数/十几台虚拟机/VPS 上运行。它需要一些仔细的架构来实现所需的可用性级别,但是用于管理虚拟机上的数据库和无状态应用程序以实现 HA(具有 3 倍可扩展性)的模式已经相当成熟。

容器世界中仍有很多发现正在发生。尤其是 Kubernetes,每个季度都会有一个全新的版本,其中有新的极端案例等待发现。

当然,了解它真的很有趣,但仍然处于看到它起作用的奇妙状态,而不是无聊。