【问题标题】:Whats the point of scaling VMs/containers on the same server?在同一台服务器上扩展虚拟机/容器有什么意义?
【发布时间】:2018-11-21 06:53:08
【问题描述】:

如果您的主机有 3 个 VMS(或 docker 容器),每个都运行不同的服务,那么在同一主机上添加这些虚拟机/容器之一的副本有什么意义,或者您什么时候需要做所以?如果主机的流量很大,会导致 CPU 利用率和内存出现问题,那么创建更多实例有什么帮助?

Docker swarm 还允许用户在不向集群添加新节点的情况下创建正在运行的容器的新实例。这怎么可能有帮助?

【问题讨论】:

  • 我不完全确定这是否真的可以做到,但是如果您的容器服务仅使用单线程,例如nodeJS(当然您也可以将其集群在容器中,那就是为什么我说我不确定)它可能会更灵活,让您获得高级别的控制?

标签: docker virtual-machine scalability


【解决方案1】:

当您的流量流向您的容器时,您会想要更多的实例。使用诸如 kubernetes 之类的编排器,您可以将您的实例分布在许多主机上,并通过一个地址访问它们。

【讨论】:

    【解决方案2】:

    您认为副本应该位于同一主机上的假设是错误的。 副本的想法应该是提供容错,因此它们需要位于不同的主机上,这样如果一台主机出现故障,您的服务仍然可以在不同的节点上使用。 【思考节点集群】 也就是说,没有人阻止您在同一个节点上创建新实例,但这没有任何意义,也没有提供容错的额外优势。

    谈到您所说的部分,如果主机已经因负载而承受压力,那么在那里生成新实例有什么帮助? 好吧,它不会。这正是我们在集群的不同节点上生成它的原因。并且使用相同的 IP,Kubernetes/Docker swarm 确保它们之间的负载平衡。

    【讨论】:

    • 因此,在 docker swarm 中,副本数量多于节点没有意义?
    • @ninesalt 差不多,是的。但不总是。抱歉,答案没那么简单。由于您说只有一台主机,因此您只能将资源拉伸这么多。因此,对于您的问题,我想说您需要多个主机才能真正正确扩展。但总会有一种情况,在同一主机上拥有多个副本更有意义。例如:您的应用程序并没有真正密集地使用 CPU 或 IO,在这种情况下,您总是可以进行垂直缩放,而不是水平缩放。基本上,您添加的容器比向池中投入的硬件更多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2014-04-20
    • 2020-07-25
    • 1970-01-01
    • 2011-09-15
    • 2018-06-04
    相关资源
    最近更新 更多