7. 负载均衡
对于 HTTP
、HTTP/2
和 gRPC
连接,
Linkerd
会自动在所有目标端点之间对请求进行负载均衡,无需任何配置。
(对于 TCP 连接
,Linkerd
会平衡连接。)
Linkerd
使用称为 EWMA
或指数加权移动平均(exponentially weighted moving average)的算法自动将请求发送到最快的端点。
这种负载均衡可以改善端到端延迟。
服务发现
对于不在 Kubernetes
中的目的地,Linkerd
将在 DNS
提供的端点之间进行均衡。
对于 Kubernetes
中的目的地,Linkerd
将在 Kubernetes API
中查找 IP
地址。
如果 IP
地址对应于一个服务,Linkerd
将在该服务的端点之间进行负载均衡,并应用该服务的服务配置文件中的任何策略。
另一方面,如果 IP
地址对应一个 Pod
,Linkerd
将不会执行任何负载均衡或应用任何服务配置文件。
负载均衡 gRPC
Linkerd
的负载均衡对于 Kubernetes
中的 gRPC
(或 HTTP/2
)服务特别有用,对于这些服务,
Kubernetes 的默认负载均衡是无效的。