为什么 ewma 的注释不同?
why is this annotation of ewma are different?
我的集群中有一个服务有 10 pods 个,它向主节点发送多个请求超过一个小时。
我在我的入口资源中添加了一个注释并用一些注释对其进行了修改,我使用的第一个注释只是将负载平衡器方法更改为ewma负载平衡。
Annotations: nginx.ingress.kubernetes.io/load-balance: ewma
在客户端向主节点请求服务期间,它完美地接收了请求,这意味着客户端从不同的 pods 和集群内的不同代理节点收到了不同的响应。
但是当我把注解改成这个注解时
nginx.ingress.kubernetes.io/upstream-hash-by: "ewma"
客户端每次都从同一个pod和同一个节点收到相同的回答,即使我在30多分钟内每秒发送5次服务请求。它们是否正确实施?为什么它们不同?
这是为了提高可见度而发布的社区 Wiki 答案。随意展开。
根本原因:
节点应该接收来自客户端的平等请求(负载平衡),同时节省机器资源。
因此,需要在下面的注释之间找到最佳解决方案(基于问题):
nginx.ingress.kubernetes.io/load-balance: ewma
和
nginx.ingress.kubernetes.io/upstream-hash-by: ewma
解法:
使用 nginx.ingress.kubernetes.io/load-balance: ewma
注释是上述目的的优选解决方案。
基于documents:load-balance
使用Peak EWMA方法进行路由。相比之下,upstream-hash-by
,它是使用 IP 或其他变量的一致性哈希的负载平衡,并提供到同一 pod 的连接。
有关详细信息,请参阅本文 Kubernetes Nginx Ingress: Consistent hash subset load balancer。
我的集群中有一个服务有 10 pods 个,它向主节点发送多个请求超过一个小时。 我在我的入口资源中添加了一个注释并用一些注释对其进行了修改,我使用的第一个注释只是将负载平衡器方法更改为ewma负载平衡。
Annotations: nginx.ingress.kubernetes.io/load-balance: ewma
在客户端向主节点请求服务期间,它完美地接收了请求,这意味着客户端从不同的 pods 和集群内的不同代理节点收到了不同的响应。
但是当我把注解改成这个注解时
nginx.ingress.kubernetes.io/upstream-hash-by: "ewma"
客户端每次都从同一个pod和同一个节点收到相同的回答,即使我在30多分钟内每秒发送5次服务请求。它们是否正确实施?为什么它们不同?
这是为了提高可见度而发布的社区 Wiki 答案。随意展开。
根本原因:
节点应该接收来自客户端的平等请求(负载平衡),同时节省机器资源。
因此,需要在下面的注释之间找到最佳解决方案(基于问题):
nginx.ingress.kubernetes.io/load-balance: ewma
和
nginx.ingress.kubernetes.io/upstream-hash-by: ewma
解法:
使用 nginx.ingress.kubernetes.io/load-balance: ewma
注释是上述目的的优选解决方案。
基于documents:load-balance
使用Peak EWMA方法进行路由。相比之下,upstream-hash-by
,它是使用 IP 或其他变量的一致性哈希的负载平衡,并提供到同一 pod 的连接。
有关详细信息,请参阅本文 Kubernetes Nginx Ingress: Consistent hash subset load balancer。