我有一个服务,在我的集群中有10个豆荚,它向主节点发送多个请求超过一个小时。我在入口资源中添加了一个注释,并使用一些注释对其进行了修改,我使用的第一个注释只是将负载均衡器方法更改为ewma负载平衡。
Annotations: nginx.ingress.kubernetes.io/load-balance: ewma在客户端从主节点请求服务的过程中,它很好地接收到了请求,这意味着客户端接收到来自集群内部不同荚和不同代理节点的不同响应。
但是当我将注释更改为这个注释时
nginx.ingress.kubernetes.io/upstream-hash-by: "ewma"客户端每次都从同一个吊舱和同一个节点收到相同的答复,甚至我也在30分钟内在一秒钟内发送5次服务请求。它们执行正确吗?他们为什么不一样?
发布于 2022-04-08 17:01:47
这是一个社区wiki的答案,张贴了更好的能见度。可以自由地扩展它。
的根本原因:
节点应该接收来自客户端的相同请求(负载平衡),同时节省机器资源。
因此,需要在以下注释之间找到最佳解决方案(基于这个问题):
nginx.ingress.kubernetes.io/load-balance: ewma和
nginx.ingress.kubernetes.io/upstream-hash-by: ewma解决方案:
就上述目的而言,使用nginx.ingress.kubernetes.io/load-balance: ewma注释是较好的解决方案。
在文档:load-balance的基础上,使用峰值路由算法进行路由选择。与之相反的是upstream-hash-by,它使用IP或其他变量的一致散列来实现负载平衡,并提供到同一个pod的连接。
有关更多信息,请参见本文Kubernetes Nginx Ingress:一致的散列子集负载均衡器。
https://stackoverflow.com/questions/71641614
复制相似问题