我正在使用Kubernetesv1.20.10裸机安装。它有一个主节点和三个工作节点。应用程序只服务于HTTP请求。
我正在基于(HPA)水平Pod Autoscaler扩展部署,我注意到Pod之间的负载不均匀。只有第一个Pod获得了95%的负载,而另一个Pod获得的负载非常低。
我尝试了这里提到的答案,但没有工作:Kubernetes service does not distribute requests between pods
我正在使用Kubernetesv1.20.10裸机安装。它有一个主节点和三个工作节点。应用程序只服务于HTTP请求。
我正在基于(HPA)水平Pod Autoscaler扩展部署,我注意到Pod之间的负载不均匀。只有第一个Pod获得了95%的负载,而另一个Pod获得的负载非常低。
我尝试了这里提到的答案,但没有工作:Kubernetes service does not distribute requests between pods
2条答案
按热度按时间brc7rcf01#
根据所提供的信息,我假设你使用的是持久tcp连接http-keepalive,kubernetes服务为每个(新的)tcp连接分配负载,如果你有持久连接,只有额外的连接会被分配,这就是你观察到的效果。
尝试:禁用http keepalive或将最大keepalive时间设置为15秒,最大请求数设置为50。
ar7v8xwq2#
如果连接是长期的,则客户端将在连接的整个生命周期内使用同一pod。只有新连接才会以循环方式分发。如果连接是长期的,则可以在客户端处理负载平衡,或将负载平衡的责任委派给反向代理(如traefik入口),以便以循环方式分发请求。