1

我在下面提供了更多详细信息,但我试图回答的问题在标题中。我目前正在尝试解决这个问题,但我想我会先在这里问一下,以防有人知道答案。

关于我的设置

我有一个在 Google Compute Engine 集群上运行的 Kubernetes 服务(通过 Google Container Engine 启动)。它由一个服务(用于前端稳定 IP)、一个复制控制器和运行 Python 服务器的 pod 组成。服务器是一个 Python gRPC 服务器,在端口上进行睡眠侦听。

有 2 个 pod(在复制控制器中指定了 2 个副本)、1 个 rc、1 个服务和 4 个 GCE 实例(设置为根据 CPU 自动扩展至 5 个)。

我希望该服务能够处理任意数量的想要流式传输信息的客户端。但是,我目前看到该服务只与 16 个客户对话。

我假设连接的数量要么受到我拥有的 GCE 实例数量的限制,要么受到 pod 数量的限制。我将做实验,看看改变这些数字是如何影响事物的。

4

1 回答 1

3

弄清楚了:

  • 这不是 GCE 实例的数量:我增加了 GCE 实例的数量,而流式客户端的数量没有变化。
  • 这是 pod 的数量:每个 pod 显然可以处理 8 个连接。我只是扩展了我的复制控制器kubernetes scale rc <rc-name> --replicas=3以支持 24 个客户端。

我将研究基于传入 HTTP 请求的 pod 数量的自动缩放(使用水平 pod 缩放器?)。

更新1:

Kubernetes目前不支持基于 HTTP 的水平 pod 扩展。

更新 2:

显然这里还有其他事情在起作用,比如服务器可用的线程池的大小。使用 N 个线程和 P 个 pod,我能够维护 P*N 个开放通道。这对我来说特别有效,因为我的客户只需要每隔几秒钟轮询一次服务器,并且在不活动时它们会休眠。

于 2016-02-04T21:03:44.017 回答