Fork me on GitHub

版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | http://vearne.cc

1. 前言

本文存在的目的,是为了通过图例的方式更好的整理envoy存在的意义

2. 图示

envoy

namespace配置了自动注入(istio-injection:enabled)之后,每个POD都会自动生成1个Sidecar容器 istio-proxy(运行sidecar代理,实现方式为Envoy或MOSN

图示展示服务网格中的请求的情况

2.1 请求网格内部�的服务

downstreamupstream是网格内的2个服务的容器
downstream调用upstream

对这种场景,请求穿过需要穿过2个envoy,1个是调用方POD中的envoy, 1个是被调用方POD中的envoy

2.2 请求网格外部的服务

External Service是网格外部的1个服务
对于这种场景,只穿过一次envoy

3. 支持的服务治理功能

  • 请求分发, 按不同版本,以特定权重分发
  • 负载均衡
  • URL重写
  • 故障注入,包含增加延迟,或者直接拒绝
  • 服务熔断,比如针对5XX执行熔断操作
  • 限频
  • 重试
  • 超时控制
  • 状态统计 QPS/流量/URL/延迟等
    这部分信息最后会由prometheus统一收集,最终展现在Grafana和Kiali中

envoy实际是将原来应用中的拦截器以及网关实现的部分功能做了抽取和抽象,使得应用开发人员能够转注于业务逻辑开发。

参考资料

1.Sidecar 注入及透明流量劫持
2.Istio流量分析


打赏我

微信支付码

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据