Istio在服务网络中统一提供了许多关键功能:
-
流量管理:控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情况下更加健壮。
-
可观察性:了解服务之间的依赖关系,以及它们之间流量的本质和流向,从而提供快速识别问题的能力。
-
策略执行:将组织策略应用于服务之间的互动,确保访问策略得以执行,资源在消费者之间良好分配。策略的更改是通过配置网格而不是修改应用程序代码。
-
服务身份和安全:为网格中的服务提供可验证身份,并提供保护服务流量的能力,使其可以在不同可信度的网络上流转。
Istio针对可扩展性进行了设计,以满足不同的部署需要:
-
平台支持:Istio旨在在各种环境中运行,包括跨云, 预置,Kubernetes,Mesos等。最初专注于Kubernetes,但很快将支持其他环境。
-
集成和定制:策略执行组件可以扩展和定制,以便与现有的ACL,日志,监控,配额,审核等解决方案集成。
Envoy:
istio 使用Envoy 代理的扩展版本,Envoy是以c++开发的高性能代理,用于解释服务网格中所有服务的所有入站和出站的流量,Envoy的许多内置功能被iosio发扬光大,例如动态发现,负载均衡,TLS终止,HTTP1/2&Grpc代理,熔断器,健康检查,基于百分比流量拆分的分段推出,故障注入和丰富指标。
Envoy被部署为边车,和对应服务在同一个pod中,这允许istio将大量关于流量行为的型号作为属性提取出来,而这些属性又可以在Mixer中用于执行策略决策,并发送到监控系统,以提供整个网格行为的信息
Mixer:
负责在服务网格上执行访问控制和使用策略,并从Envoy代理和其他服务收集遥测数据,代理提取请求级属性,发送到Mixer进行评估。
Pilot
负责手机和验证配置,并将其传播到各种istio组件,它从Mixer和Envoy中提取环境特定的实现细节,为他们提供用户服务的抽象表示,独立于底层平台,此外,流量管理规则可以在运行时通过pilot进行编程。
lstio-auth
提供强大的服务间认证和终端用户认证,使用交互tls,内置身份和证书管理,可以升级服务网格中的未加密流量,并为运维人员提供基于服务身份而不是网络控制来执行策略的能力。