1.Istio是什么
一个与Kubernetes紧密结合的适用于cloud native场景的Service Mesh形态的用于服务治理的开放平台。
服务治理的特性:
- 连接(Connect)
- 安全(Secure)
- 策略执行(Control)
- 可观察性(Observe)
2.Istio能做什么
- 发现服务,并且根据负载均衡规则选择一个服务实例
- 服务双方启用双向认证和通道加密
- 如果某个实例连续访问出错,可以将该实例隔离一段时间,以提高访问质量
- 可以设置最大连接数、最大请求数、访问超时等对服务进行保护 限流
- 对请求进行重试
- 修改请求的内容
- 将一定特定的服务重定向
- 灰度发布
- 自动记录服务访问信息
- 记录调用链,进行分布式追踪
- 根据访问数据形成完整的应用访问拓扑
3.Istio与服务治理
不仅仅包含服务治理的负载均衡、熔断、限流等一般治理能力,Istio还包含其他能力,比如可插拔的服务安全、可拓展的控制策略、服务运行可观察性等更广泛的能力。
4.Istio与服务网格(service mesh)
服务网格的特点
- 是一种处理服务间通信的基础设施层
- 尤其适用于cloud native场景下帮助应用程序在复杂的服务拓扑间可靠地传递请求
- 一般是通过一组轻量级的网络代理来执行治理逻辑
- 对应用透明,通过代理与应用程序部署在一起,应用感知不到代理的存在
- 因为对服务间的调用增加了inbound和outbound流量的拦截处理,因此增加了两处延迟和可能的故障点,多出来的这两个处理对于访问性能、整体可靠性和系统复杂度都带来新挑战
选择Istio作为服务网格的实现方式
5.Istio与K8S
K8S
- 只提供4层负载均衡能力,无法基于应用层的信息进行负载均衡,不提供应用层的流量管理
- 在服务运行管理上只提供基本的探针机制,不提供服务访问指标和调用和调用链追踪的服务运行诊断能力
Istio
- 在pod中添加sidecar容器,实现更细粒度的服务治理