Kubernetes 使用哪种算法来导航流量 i replicaset/deployment
Which algorithm Kubernetes uses to nevigate traffics in replicaset/deployment
有人问我这个问题,但我在网上找不到相关信息 - Kubernetes 使用哪种算法来导航 pods 的副本集或部署中的流量(我猜它们是一样的)?
比方说,我的 Kubernetes 集群中有 5 个 pods 的副本,在副本集中定义。在新请求中,集群如何选择要转到的 pod?它使用循环法吗?我找不到相关信息。
用于确定哪个 pod 将处理请求的算法取决于 kube-proxy 模式,即 运行。
在 1.0 中,代理工作在称为用户空间的模式下,默认算法是循环。
在 1.2 模式中添加了 iptables 代理,但由于 iptables 的限制仍然使用循环。
在 1.8.0-beta 中,引入了 IP 虚拟服务器 (IPVS),它允许更多的算法选项,例如:
- 循环法;
- 加权循环法;
- 最少连接;
- 加权最少连接;
- LocalityBasedLeastConnection;
- LocalityBasedLeastConnectionWithReplication;
- SourceHashing;
- 目标哈希;
- 最短预期延迟;
- 永不排队。
参考文献:
https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/
有人问我这个问题,但我在网上找不到相关信息 - Kubernetes 使用哪种算法来导航 pods 的副本集或部署中的流量(我猜它们是一样的)?
比方说,我的 Kubernetes 集群中有 5 个 pods 的副本,在副本集中定义。在新请求中,集群如何选择要转到的 pod?它使用循环法吗?我找不到相关信息。
用于确定哪个 pod 将处理请求的算法取决于 kube-proxy 模式,即 运行。
在 1.0 中,代理工作在称为用户空间的模式下,默认算法是循环。
在 1.2 模式中添加了 iptables 代理,但由于 iptables 的限制仍然使用循环。
在 1.8.0-beta 中,引入了 IP 虚拟服务器 (IPVS),它允许更多的算法选项,例如:
- 循环法;
- 加权循环法;
- 最少连接;
- 加权最少连接;
- LocalityBasedLeastConnection;
- LocalityBasedLeastConnectionWithReplication;
- SourceHashing;
- 目标哈希;
- 最短预期延迟;
- 永不排队。
参考文献:
https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/