istio学习笔记(2)-envoy

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

1. 前言

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

2. 图示

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流量分析

打赏我