在Kubernetes (k8s) 中,Service对象用于定义如何访问Pod的策略,包括负载均衡算法。轮询(Round Robin,简称rr)和哈希(Hash)是两种常见的负载均衡策略。
1. **轮询(Round Robin, rr)**:
- 这是默认的负载均衡策略,按照顺序将请求分配给后端的Pod。
- 当创建Service后,kube-proxy会为Service创建VIP,并通过Linux的IPVS模块,为这个IP地址设置三个IPVS虚拟主机,并设置这三个虚拟主机之间使用轮询模式(rr)来作为负载均衡策略。
2. **哈希(Hash)**:
- 哈希策略包括目的地哈希(Destination Hashing,dh)和源哈希(Source Hashing,sh)。
- 目的地哈希(dh):根据请求的特定目标信息(例如源IP地址或会话ID)计算哈希值,并将请求分发给与哈希值匹配的服务器。这样可以确保相同的请求始终被分发到相同的服务器上。
- 源哈希(sh):类似于目的地哈希,但是使用源IP地址而不是目标信息来计算哈希值。这样可以确保来自同一来源的请求始终被发送到同一台服务器。
这些策略可以通过kube-proxy组件来实现,kube-proxy是一个本地代理,它监听Service的配置,并根据配置将请求转发到相应的Pod。 默认情况下,如果不配置特定的负载均衡算法,Service会使用轮询(rr)作为默认值。
标签:负载,hash,service,Service,轮巡,轮询,rr,哈希,请求 From: https://www.cnblogs.com/gaoyuechen/p/18614490