# 服务治理Istio
# 1.1 概述
ServerMesh: “服务网格”,处理服务与服务之间通信的基础设施层,为复杂的云原生应用传递可靠的网络请求,服务网格是一个分布式的代理思想。传统的方式使用nginx等来做服务的代理、限流、白名单等事情
# 1.1.1 特点:
- 治理能力独立(SideCar)
- 无感知
- 通信的基础设施
- 解耦,代理应用完成服务发现、负载均衡、访问控制、服务发现、链路追踪、监控、重试等
# 1.1.2 功能
连接:
- 流量管理(丰富路由规则、重试、故障转移、故障流入等细粒度控制)
- 负载均衡(支持http、gRPC、WebSocket、TCP)
- 灰度发布
安全
- 认证
- 鉴权(集群中实现安全的服务间通信)
控制
- 限流
- ACL
- 调试:流量镜像、故障流入
观察
- 监控
- 调用链(对网格控制下流量自动化度量、日志记录、跟踪)
服务治理:流量管控、熔断限流、动态路由、链路追踪、负载均衡
部署运维:应用部署、弹性伸缩、资源共享、资源隔离
# 1.1.3 架构与组件
- 数据平面:Proxy,负责高效转发与策略实现,由代理组成,代理微服务的网络通信,接收和实施Mixer的策略
- 控制平面:管理和配置代理来路由流量。通过Mixer实施策略与收集SiderCar代理的数据
- MIxer:适配组件,数据平面和控制平台通过它交互,为Proxy提供策略和数据上报
- Piolot:策略配置组件,为Proxy提供服务发现,智能路由,错误处理等
- Citadel(si·tuh·del):安全组件,提供证书生成下发,加密通信、访问控制
- Galley:配置管理、验证和分发
在 Istio (opens new window) 1.5 版本中,控制平面由原来分散的、独立部署的几个组件整合为一个单体结构 istiod,变成了一个单进程、多模块的组织形态
架构演进图
1.5后最新的架构图
# 1.1.4 配置资源
- VirtualService:服务请求路由规则
- DestinationRule:目标服务的负载均衡、服务发现、故障处理和故障流入功能
- Gateway:外界服务网格内的服务
- ServiceEntry:服务网格内的服务访问外界