1

我研究 Docker 容器化已经有一段时间了,但仍然没有什么让我感到困惑。我知道所有容器都被分组到一个集群中,并且可以使用 Docker Swarm、DC/OS、Kubernetes 或 Rancher 等集群管理工具来管理 docker 容器。我一直在使用 DC/OS 和 Kubernetes 测试容器集群管理,但仍有一些问题没有得到解答。

容器级别的自动缩放如何帮助我们生产服务器?应用程序如何为来自多个容器的流量提供服务?

假设我们已经使用容器部署了一个 Web 应用程序并且它们已经自动扩展。流量如何流向容器?会议是如何管理的?

为自动缩放容器计算哪些指标?

4

2 回答 2

1

Kubernetes 有一个名为service. Kubernetes 服务是一种抽象,它定义了一组逻辑 Pod 和访问它们的策略。Kubernetes 使用服务来服务来自多个容器的流量。您可以在此处阅读有关服务的更多信息。

AFAIK,会话在 kubernetes 之外进行管理,但是可以通过将 service.spec.sessionAffinity 设置为“ClientIP”来选择基于 Client-IP 的会话亲和性。您可以在此处阅读有关服务和会话亲和性的更多信息

多个指标(如 cpu 和内存)可用于自动缩放容器。您可以阅读一篇关于自动缩放、何时以及如何进行的好博客。

于 2016-10-28T08:35:26.207 回答
1

DC/OS 中的自动缩放(注意:Mesosphere 是公司,DC/OS 是开源项目)文档中详细描述了自动缩放。与 Kubernetes 基本相同,您可以使用 CPU 利用率等低级指标来决定何时增加应用程序实例的数量,也可以使用应用程序吞吐量等更高级别的指标,例如使用微缩放方法。

关于路由如何工作的问题(如何将请求转发到实例,即单个容器运行):您需要一个负载均衡器,并且 DC/OS 为您提供了开箱即用的功能。同样,这些选项在docs中有详细说明,主要是:基于 HAProxy 的南北向或基于 IPtables 的东西向(集群内部)负载均衡器。

于 2016-10-28T19:07:10.077 回答