一、什么是Istio
Istio 提供⼀种简单的⽅式来为已部署的服务建⽴⽹络,该⽹络具有 负载均衡、服务间认证、监控等功能,只需要对服务的代码进⾏⼀点或不需要做任何改动。想要让服务⽀持 Istio,只需要在您的环境中部署⼀个特殊的 sidecar 代 理,使⽤ Istio 控制平⾯功能配置和管理代理,拦截微服务之间的所有⽹络通信:
HTTP、gRPC、WebSocket 和 TCP 流量的⾃动负载均衡。
通过丰富的路由规则、重试、故障转移和故障注⼊,可以对流量⾏为进⾏细粒度控制。
可插⼊的策略层和配置 API,⽀持访问控制、速率限制和配额。
对出⼊集群⼊⼝和出⼝中所有流量的⾃动度量指标、⽇志记录和追踪。
通过强⼤的基于身份的验证和授权,在集群中实现安全的服务间通信。
Istio 旨在实现可扩展性,满⾜各种部署需求 。
二、什么是service mesh
在从单体应⽤程序向分布式微服务架构的转型过程中,开发⼈员和运维⼈员⾯临诸多挑战,使⽤ Istio 可以解决这些问题。
服务⽹格(Service Mesh) 这个术语通常⽤于描述构成这些应⽤程序的微服务⽹络以及应⽤之间的交互。随着规模和复杂性的增⻓,服务⽹格越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如 A/B 测试、⾦丝雀发布、限流、访问控制和端到端认证等。
Istio 提供了⼀个完整的解决⽅案,通过为整个服务⽹格提供⾏为洞察和操作控制来满⾜微服务应⽤程序的多样化需求。
三、架构原理
四、其他概念
4个配置资源
这4个配置资源,落地所有流量管控需求
VirtualService: 实现服务请求路由规则的动能
DestinationRule: 实现⽬标服务的负载均衡、服务发现、故障处理和故障注⼊的功能
Gateway: 让服务⽹格内的服务,可以被全世界看到
ServiceEntry: 让服务⽹格内的服务,
功能列表
以下是从官⽹各项示例中整理出来的Istio所⽀持的功能列表