Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么限制了Kubernetes服务的连接数?_Python_Google Compute Engine_Kubernetes_Google Kubernetes Engine_Grpc - Fatal编程技术网

Python 什么限制了Kubernetes服务的连接数?

Python 什么限制了Kubernetes服务的连接数?,python,google-compute-engine,kubernetes,google-kubernetes-engine,grpc,Python,Google Compute Engine,Kubernetes,Google Kubernetes Engine,Grpc,我在下面列出了更多细节,但我想回答的问题在标题中。我目前正试图弄清楚这一点,但我想我应该先问一下这里,以防有人马上知道答案 关于我的设置 我有一个运行在谷歌计算引擎集群上的Kubernetes服务(通过谷歌容器引擎启动)。它由一个服务(用于前端稳定IP)、一个复制控制器和运行Python服务器的POD组成。服务器是一个Python gRPC服务器,在端口上侦听睡眠 有2个POD(在replication controller中指定了2个副本)、一个rc、一个服务和4个GCE实例(根据CPU设置为

我在下面列出了更多细节,但我想回答的问题在标题中。我目前正试图弄清楚这一点,但我想我应该先问一下这里,以防有人马上知道答案

关于我的设置

我有一个运行在谷歌计算引擎集群上的Kubernetes服务(通过谷歌容器引擎启动)。它由一个服务(用于前端稳定IP)、一个复制控制器和运行Python服务器的POD组成。服务器是一个Python gRPC服务器,在端口上侦听睡眠

有2个POD(在replication controller中指定了2个副本)、一个rc、一个服务和4个GCE实例(根据CPU设置为自动缩放到5)

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

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

找到了答案:

  • 这不是GCE实例的数量:我增加了GCE实例的数量,而流式客户端的数量没有变化
  • 这是吊舱的数量:每个吊舱显然可以处理8个连接。我只是用
    kubernetes scale rc--replications=3扩展了我的复制控制器,以支持24个客户端
    
我将研究基于传入HTTP请求的自动缩放(使用水平pod定标器?)pod数量

更新1:

基于HTTP的Kubernetes水平pod扩展

更新2:


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

从1.3开始,Kubernetes支持自动调用集群