我们想建立一个小型集群,它将首先存储一些数据库和测试服务。该集群最初将在 8 台专用服务器 (HP G3/G5) 上启动。其中 6 台服务器位于同一机架中,另外两台位于单独的不同位置。在这个集群之外,我们有 2-4 台强大的服务器,它们大多未使用所有自己的资源。这让我想到,当它们未使用 100% 的资源时,可以将它们添加到集群中并执行集群操作。我希望集群具有的另一个功能是将 docker 容器作为集群服务运行,当然集群是 HA 和负载平衡的。我已经搜索了很多关于这个问题的信息,但找不到一个好的答案。
目前最强大的选项是安装 Ubuntu 14.04 和Apache Mesos在 Mesos 实现后,将非专用服务器作为从属服务器添加到集群中动态从属属性
答案1
您是否尝试查看可用区域?也许它可以帮助您。关于容器、HA 和负载平衡,您能否进一步解释一下您的需求?Mesos 在设计上已经是冗余的,因为它负责处理任务的健康和状态,因此您实际上不需要 HA,就像您在虚拟化平台上看到的那样。负载平衡也没有真正实现,因为您认为可以在通常的基础设施上使用它,因为 mesos 集群将根据其发送/接收的报价和需求自动安排您的任务,调度程序将查看全局可用资源并动态地为您的任务提供报价。
事实上在 mesos 中你更愿意考虑应用程序设计上的冗余和负载平衡而不是基础设施上的冗余和负载平衡(即使你可以在 HA 模式下构建 mesos 主服务器和从服务器)但这并不是很有趣。
我宁愿将故障作为一项功能来实现,以便能够管理基础设施的任何问题或故障。例如,如果您想要相对安全的东西,您将需要至少 3 台服务器作为主控部分,6 台服务器作为从属部分。
在我的基础架构中,我们确实在主服务器上使用小型 Linux 加 docker(现在通常被称为原子发行版),并在顶部使用最小 Linux(CentOS/RHEL 7,带有严格基本的二进制文件和工具,但不是原子发行版)加 mesos-slave。
这使我们能够保护我们的基础设施,因为如果任何从属服务器或主服务器死亡,另一个成员就会检测到故障,并且附加的服务或任务将失效,然后根据您的应用程序故障和恢复策略在另一个节点上重新启动。
但是嘿,再说一次,这是我的设置,并且可能有更好的实现方式。