Service Mesh -> Istio
概述
Service Mesh(服务网格),用于处理服务和服务之间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求,并为服务通信实现了微服务所需的基本组件功能,服务发现、负载均衡、监控、流量管理和访问控制等,服务网格通常实现为一组和应用程序部署在一起的轻量级的网络代理,但对应用程序来说是透明的。
治理能力独立(Sidecar)
应用程序无感知
服务通信的基础设施层
解耦应用程序的重试/超时、监控、追踪和服务发现
Istio
Istio是Service Mesh的产品化落地
Linkerd是世界上第一个服务网格类的产品
概述
- 连接(connect)
-- 流量管理
-- 负载均衡
-- 灰度发布 - 安全(Secure)
-- 认证
-- 鉴权 - 控制(Control)
-- 限流
-- ACL - 观察(Observe)
- 监控
- 调用链
Istio架构与组件
- 数据平面:由一组代理组成,这些代理微服务所有网络通信,并接受和实施来自Mixer的策略
-- Proxy:负责高效转发和策略实现(envoy) - 控制平面:管理和配置代理来路由流量,此外,通过Mixer实施策略与收集来自边车代理的数据。
-- Mixer:适配组件,数据平面与控制平面通过它交互,为Proxy提供策略和数据上报
-- Pilot:策略配置组件,为Proxy提供服务发现、智能路由、错误处理等
-- Citadel:安全组件,提供证书生成下发、加密通信、访问控制
-- Galley:配置管理、验证、分发。
Istio基本概念
Istio有4个配置资源,落地所有流量管理请求
- VirtualService:实现服务请求路由规则的功能
- DestinationRule:实现目标服务的负载均衡、服务发现、故障处理和故障注入的功能
- Gateway:让服务网格内的服务,可以被全世界看到
- ServiceEntry:让服务网格内的服务,可以看到外面的世界。
Sidercar注入
服务网关:Gateway
GateWay为网格内服务提供负载均衡器,提供一下功能
- L4-L7的负载均衡
- 对外的mTLS
Gateway根据流入流出方向: - IngressGateway:接收外部访问,并将流量转发到网格内的服务
- EgressGateway:网格内服务访问外部应用。