内容简介:原文:作者:Anna Berenberg & Arunkumar Jayaraman April 18, 2019服务网格为不同队伍用不同语言开发的独立微服务提供了基础。服务网格将开发和运维进行解耦,开发者再也不用在应用代码中维护一套网络路由规则了。所有的流量路由规则都被
作者:Anna Berenberg & Arunkumar Jayaraman April 18, 2019
服务网格为不同队伍用不同语言开发的独立微服务提供了基础。服务网格将开发和运维进行解耦,开发者再也不用在应用代码中维护一套网络路由规则了。所有的流量路由规则都被 Envoy 等服务代理所接管,由服务网格 控制面 提供动态的流量管控。
流量指挥官让服务网格和Envoy更容易在生产环境中使用。 —— Matt Klein, Envoy的创始人
流量指挥官是谷歌云全方位管控的服务网格流量控制面。流量指挥官对于虚拟机和容器都有效,它使用开源的 xDS
接口来与数据面的服务代理进行交互。
流量指挥官的能力
- 全局负载均衡
- 中心化健康检查
- 基于Load的自动扩缩容
- 内嵌的弹性(高可用)
- 强大的流量控制能力
全局负载均衡
你们很多人肯定都使用过谷歌面向互联网服务的全局负载均衡。流量指挥官把全局负载均衡带到了服务网格的微服务场景下。通过全局负载均衡,我们可以为你在GCP上全球部署的服务实例赋能。流量指挥官提供了一套智能的通信方案,是的客户端自动把流量发往容量有空余的最近服务节点。
这可以大大优化服务上下游之间的流量分布,为请求提供最短的 RTT 时间。
如果距离客户端最近的服务节点挂掉了,那么流量指挥官会智能无缝地把流量切换到最近的健康节点。
中心化健康监测
大规模部署的服务网格会产生大量的健康检查的流量,因为每一个代理都要去检查下游的所有服务的健康状态。当服务网格的体量增长的时候,健康检查就称为了一个 n 2 的问题(假设 client 的数量和 server 的数量级都是n)。这会成为服务伸缩的一个重大障碍。
流量指挥官通过中心化的服务健康检查解决了这个问题。它使用一个全局分布式的弹性系统监控器去监控所有的服务实例。接下来,流量指挥官使用 EDS API
,把健康检查的结果分发到全球所有的代理。
基于Load的自动扩缩容
流量指挥官可以基于Load,支持自动扩容和缩容。Load信号是由proxy上报给它的。流量指挥官通知计算引擎扩/缩容到具体的大小。
当计算引擎扩容成功之前,流量指挥官会临时把流量打到其他可用的实例上,如果需要的话甚至会把流量临时打到其他的区域。一旦自动扩容成功,流量指挥官会把流量重新定位到最近的区域上。
内嵌弹性(高可用)
流量指挥官是全面部署在GCP上的,你不用担心它的启动时间、生命周期管理、扩缩容、可用性等任何问题。流量指挥官的架构是全球分部署弹性部署的,它与Google自身的2C业务使用同样的系统。
流量指挥官可以提供 99.99% GA(Generally Available) 的 SLA(Service Level Aggreement)。
流量控制能力
流量指挥官让你可以在不修改应用代码的情况下控制流量
你可以创建一个自定义的流量控制规则或者策略
- HTTP匹配:指定参数,包括host,path以及header
- HTTP行为:在匹配成功之后,指定需要进行的行为,包括重定向、重写、header变换、镜像、故障注入等等
- 每个服务的流量策略:可以设置负载均衡算法、熔断参数等其他服务级别的配置
- 配置过滤:把配置推送到客户端的部分子集的能力
使用上述路由规则和流量策略,你可以轻松地使得流量控制能力足够强大。
以上所述就是小编给大家介绍的《谷歌云网络深度解析:流量指挥官如何为服务网格提供全局负载均衡》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- [Grid 网格布局教程]显式网格和隐式网格之间的区别
- 精彩的无服务器时代:不仅有服务网格,还有事件网格
- 服务网格重蹈ESB的覆辙?为什么需要SMI服务网格接口? - samnewman
- 什么是服务网格?
- Kubernetes 服务网格工具对比
- [译] 初识 NGINX 服务网格
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。