官网
Istio 是一个开放的、与平台无关的服务网格,提供了流量管理,策略下发,和远程收集能力。
什么是服务网格?
现代应用程序通常被设计成微服务的分布式集合,每个服务执行一些离散的业务功能。服务网格是专门的基础设施层,包含了组成这类体系结构的微服务网络。 服务网格不仅描述了这个网络,而且还描述了分布式应用程序组件之间的交互。所有在服务之间传递的数据都由服务网格控制和路由。
功能包括发现、负载均衡、故障恢复、度量和监视。微服务体系结构通常还有更复杂的操作需求,比如 A/B 测试、金丝雀部署、速率限制、访问控制、加密和端到端身份验证。
Istio特点
Istio 是一个开源服务网格,Istio 的控制平面运行在Kubernetes上。您可以将部署在该集群中的应用程序添加到您的网格中,将网格扩展到其他集群,甚至连接 VM 或运行在 Kubernetes 之外的其他端点。
- 使用 TLS 加密、强身份认证和授权的集群内服务到服务的安全通信
- 自动负载均衡的 HTTP、gRPC、WebSocket 和 TCP 流量
- 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制
- 一个可插入的策略层和配置 API,支持访问控制、速率限制和配额
- 对集群内的所有流量(包括集群入口和出口)进行自动度量、日志和跟踪
工作原理
Istio 由两个部分组成:控制平面和数据平面。
- 数据平面:业务之间的通信平面。
如果没有一个服务网格,网络就无法理解正在发送的流量,也无法根据它是哪种类型的流量, 或者它从谁那里来,到谁那里去做出任何决定。
服务网格使用代理拦截所有的网络流量,允许根据您设置的配置提供广泛的应用程序感知功能。
代理与您在集群中启动的每个服务一起部署,或者与运行在虚拟机上的服务一起运行。
-
控制平面:获取您所需的配置和服务视图,并动态地对代理服务器进行编程,随着规则或环境的变化更新它们。