Istio是一个用来连接、管理和保护微服务的开放平台 。Istio提供一种简单的方式来建立已部署服务网络,具备负载均衡、服务间认证、监控等功能,而不需要改动任何服务代码 。想要为服务增加对Istio的支持,您只需要在环境中部署一个特殊的边车(sidecar),使用Istio控制面板功能配置和管理代理,拦截微服务之间的所有网络通信 。
Istio目前仅支持在Kubernetes上的服务部署,但未来版本中将支持其他环境 。
Istio提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求 。它在服务网络中统一提供了许多关键功能:
- 流量管理:控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情况下更加健壮 。
- 可观察性:了解服务之间的依赖关系,以及它们之间流量的本质和流向,从而提供快速识别问题的能力 。
- 策略执行:将组织策略应用于服务之间的互动,确保访问策略得以执行,资源在消费者之间良好分配 。策略的更改是通过配置网格而不是修改应用程序代码 。
- 服务身份和安全:为网格中的服务提供可验证身份,并提供保护服务流量的能力,使其可以在不同可信度的网络上流转 。
Istio服务网格逻辑上分为数据面板和控制面板:
- 数据面板由一组智能代理(Envoy)组成,代理部署为边车,调解和控制微服务之间所有的网络通信 。
- 控制面板负责管理和配置代理来路由流量,以及在运行时执行策略 。
下图显示了构成每个面板的不同组件:

文章插图
Conduit
Conduit是为Kubernetes设计的一个超轻型服务网格服务,它可透明地管理在Kubernetes上运行的服务的运行时通信,使得它们更安全可靠 。Conduit提供了可见性、可靠性和安全性的功能,而无需更改代码 。
Conduit service mesh也是由数据面板和控制面板组成 。数据面板承载应用实际的网络流量 。控制面板驱动数据面板,并对外提供北向接口 。
对比
Linkerd和Envoy比较相似,都是一种面向服务通信的网络代理,均可实现诸如服务发现、请求路由、负载均衡等功能 。它们的设计目标就是为了解决服务之间的通信问题,使得应用对服务通信无感知,这也是Service Mesh的核心理念 。Linkerd和Envoy像是分布式的Sidebar,多个类似Linkerd和Envoy的proxy互相连接,就组成了service mesh 。
而Istio则是站在了一个更高的角度,它将Service Mesh分为了Data Plane和Control Plane 。Data Plane负责微服务间的所有网络通信,而Control Plane负责管理Data Plane Proxy:
推荐阅读
- 历史上真实的胤祥 十三阿哥胤祥
- 史上最幸运的人 世界上谁最幸运
- 史上最大的鸟类 世界上最大的鸟是什么鸟?体重多少?
- 世界瘟疫史 人类历史上的瘟疫事件
- 帕萨特|帕萨特终生对手蒙迪欧停产 曾是史上研发最贵车型!仅剩中国特供
- 世界上最大的蚊子是什么蚊子 史上最大的蚊子
- 红酒茅台普洱茶 另类理财逼上梁山
- 史上最详细的mac系统快捷键介绍
- 湖北宰相有多少个 古代湖北历史名人
- 史上水下憋气的世界记录是多少 人类水下憋气时间最长记录
