istio 服务发现和负载平衡(理论)

此页面描述了Istio负载如何平衡服务网格中服务实例的流量。算法

服务注册: Istio假定存在服务注册表以跟踪应用程序中服务的pod / VM。它还假定服务的新实例自动注册到服务注册表,并自动删除不健康的实例。像Kubernetes,Mesos这样的平台已经为基于容器的应用程序提供了这样的功能。基于VM的应用程序存在大量解决方案。负载均衡

服务发现: Pilot消费来自服务注册表的信息,并提供与平台无关的服务发现接口。网格中的特使实例执行服务发现并相应地动态更新其负载平衡池。svg

发现和负载平衡spa

如上图所示,网状网中的服务使用其DNS名称相互访问。绑定到服务的全部HTTP流量将经过Envoy自动从新路由。Envoy在负载平衡池中的实例之间分配流量。虽然Envoy支持多种复杂的负载平衡算法,但Istio目前容许三种负载均衡模式:循环,随机和加权最小请求。接口

除了负载平衡以外,Envoy还会按期检查池中每一个实例的运行情况。Envoy遵循断路器样式模式,根据健康检查API调用的失败率将实例分类为不健康或健康。换句话说,当给定实例的运行情况检查失败次数超过预先指定的阈值时,它将从负载平衡池中弹出。一样,当经过的运行情况检查数超过预先指定的阈值时,该实例将被添加回负载平衡池。您能够在处理故障中找到有关Envoy故障处理功能的更多信息。ci

服务能够经过HTTP 503响应健康检查来主动减轻负担。在这种状况下,服务实例将当即从调用者的负载平衡池中删除。路由

 

https://istio.io/docs/concepts/traffic-management/load-balancing/get

相关文章
相关标签/搜索