这是我参与「第五届青训营」伴学笔记创作活动的第 11 天
服务网格
服务网格(Service Mesh)是一个专门处理服务通讯的基础设施层。它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。
服务网格从总体架构上来讲比较简单,不过是一堆紧挨着各项服务的用户代理,外加一组任务管理组件组成。
管理组件被称为控制层或控制平面(control plane),负责与控制平面中的代理通信,下发策略和配置。
代理在服务网格中被称为数据层或数据平面(data plane),直接处理入站和出站数据包,转发、路由、健康检查、负载均衡、认证、鉴权、产生监控数据等。
Istio
Istio 是一个开源服务网格,它透明地分层到现有的分布式应用程序上。Istio 的强大功能提供了一种统一且更有效的方式来保护、连接和监控服务。Istio 是实现负载均衡、服务到服务身份验证和监控的途径——几乎不需要更改服务代码。其强大的控制平面带来了重要的功能,包括:使用 TLS 加密、基于身份的强大身份验证和授权在集群中保护服务到服务的通信 HTTP、gRPC、WebSocket 和 TCP 流量的自动负载平衡通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制支持访问控制、速率限制和配额的可插入策略层和配置 API集群内所有流量的自动指标、日志和跟踪,包括集群入口和出口Istio 专为可扩展性而设计,可以处理各种部署需求。Istio 的控制平面在 Kubernetes 上运行,您可以将部署在该集群中的应用程序添加到您的网格中,将网格扩展到其他集群,甚至连接 VM 或在 Kubernetes 外部运行的其他端点。一个由贡献者、合作伙伴、集成和分销商组成的大型生态系统扩展并利用 Istio 来处理各种场景。您可以自己安装 Istio,或者许多供应商都有集成 Istio 并为您管理它的产品。