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/