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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

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

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

发现和负载平衡

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

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

服务可以通过HTTP 503响应健康检查来主动减轻负担。在这种情况下,服务实例将立即从调用者的负载平衡池中删除。

 

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

转载于:https://my.oschina.net/xiaominmin/blog/1858772

你可能感兴趣的:(istio 服务发现和负载平衡(理论))