istio

此开源图书由ithaiq原创,创作不易转载请注明出处

数据面:Istio 默认采用Envoy作为sidecar,它们在服务之间进行实际路由。

  • 提供流量控制,如HTTP、TCP、Websocket 和 gRPC 流量的路由规则

  • 安全双向tls和身份验证

  • 弹性能力:重试、服务治理、故障转移、故障注入等

控制面:告诉数据平面如何路由流量的组件,它存储、管理配置,帮助管理员与 sidecar 代理进行交互并控制 Istio 服务网格控制平面就像是 Istio 的大脑。

  • Pilot 是Istio实现流量管理的核心组件,它主要的作用是配置和管理Envoy代理。设置流量规则,配置弹性能力,将路由规则转为envoy配置并广播到envoy

  • mixer 提供策略控制收集遥测数据

  • galley管理配置,负责配置的获取、处理和分发

Istio的核心意义在于:适配多种Pass平台,把调用链路相关工作从业务逻辑中彻底剥离出来。形成“数据平面”,再通过添加“控制平面”进行统一控制,把整个链路负载工作都下沉到了PaaS基础技术栈上层,从此业务开发工程师不再需要关心内部实现,就像使用云服务一样简单

Istio是谷歌和CNCF云原生基金会开源产品,面对社区对 Istio 的性能和易用性的诟病经过1.5版本迭代拥抱变化使用单体,将原有的多个组件整合为一个单体结构 istiod,当前最新1.13版本了业界早就有大量生产实践了

  • envoy支持热重启复制socket处理新请求,单进程多线程模型基于非阻塞模式Epoll

  • Gateway 指示边界 envoy 监听端口、放行请求,但是没有告诉边界 envoy 如何转发这些从外部进来的请求,转发规则在 VirtualService 中定义。

  • VirtualService 包含一组 route ,定义了请求转发规则。Gateway 只有被 VirtualService 引用了,才知道将流入的请求转发到哪里,VirtualService 通过 gateways 字段绑定 Gateway,

  • DestinationRule是转发策略,在 route 规则之后起作用,相当于 nginx 中的负载均衡策略。它作用于 VirtualService 的 destination 中的同名的 host。

最后更新于

这有帮助吗?