Istio读书笔记-02

《Istio实战指南》 by 马若飞 2019年9月第1版

---

 

索引

核心控件:Envoy、Pilot、Mixer、Citadel、Galley

主要功能:流量管理、策略和遥测、可视化、安全

 

Istio追求尽可能的透明,通过 各种解耦设计 让系统对内对外都没有依赖,还提供 高度的扩展性。

Istio 应用的增长和服务的增多,扩展策略系统 是 最主要的需求,以增量的方式进行扩展。

数据平面、控制平面分离

各个组件都成为插件

开放和包容的设计思路

 

核心控件:Envoy、Pilot、Mixer、Citadel、Galley

1、Envoy

Istio数据平面 就是 代理。

Envoy作为 Sidecar代理。

一个为面向服务的框架而设计的7层代理和 通信总线,基于C++11。

将流量行为和数据提取出来发送给Mixer组件。

主要功能:

http 7层路由

grpc、http/2

服务发现 和 动态配置

健康检查

高级负载均衡

英文:n.  使节,使者; 代表;

2、Pilot

实现流量管理的核心组件。

主要作用:配置和管理envoy代理。

设置代理之间特定的流量规则,配置超时、重试、熔断等。

流量行为的路由规则 转换为 envoy配置 广播到envoy

把服务发现机制抽象出来 并转换成API分发给envoy

主要任务:

从平台(如K8S)获取服务信息,完成服务发现;

获取istio的各项配置,转换成envoy代理可读的格式并分发。

Rules API

流量规则

Envoy API

动态更新LB 和 路由表的API

3、Mixer

主要功能:提供策略控制,并从envoy代理 收集 遥测数据。

每次网络通信时,envoy代理 都会向 mixer发出 预检要求,用来监测调用者的合法性。

调用后,envoy代理 会发送 遥测数据 提供mixer收集。

一般情况下 Sidecar代理 会缓存数据。

适配器 是 重要组成部分,插件模型。

部分适配器API:日志后端、限额后端、授权后端、遥测后端

自定义适配器

4、Citadel

与安全相关的组件,主要负责 密钥和证书管理。

提供 服务间和终端用户的身份认证,

加密服务网格中的流量。

英文:n.  城堡,要塞; 大本营,根据地,避难所; (军舰上的)炮廓;

5、Galley

2019年3月发布的1.1版本中。

istio主要的 配置管理组件,负责 配置的获取、处理和分发。

MCP(Mesh Configuration Protocol,网格配置协议)

英文:n.  单层甲板大帆船; 军舰舰长用的大划艇; (船舰,飞机上的)厨房; 活版盘,长条校样;

---

 

主要功能:流量管理、策略和遥测、可视化、安全

1、流量管理

服务间通信》流量管理

金丝雀发布

传统:LB、Nginx、权重、对流量的管理和基础设施绑定到一起、难以维护

istio:轻松实现 各种维度的流量控制

Pilot + Envoy组件实现:将流量 和 基础设施解耦

pilot配置规则

envoy按照规则执行各种流量管理功能

功能:动态请求路由、超时、重试、熔断,故障注入-测试容错

具体功能:请求路由、入口网关(Ingress)和出口网关(Egress)、服务发现和LB、故障处理、故障注入

K8S提供了 服务注册的能力,Istio基于平台实现服务发现和LB。

envoy一整套故障处理机制:超时、重试、限流、熔断(限额呢?)

故障注入:在系统中认为地设置一些故障,来测试系统的稳定性和系统恢复的能力。Istio支持2种:延迟、中断。

Envoy的LB池

2、策略和遥测

策略:限流(调用频率、速率限制)、白名单和黑名单

Istio依靠 mixer完成。

预先检查

指标数据的采集和和汇总——遥测功能

遥测:Telemetry,从远程设备中收集数据

各种指标(metric)数据,BI数据分析

Envoy代理 发送数据给 Mixer

接入不同的后端设置作为适配器:日志分析系统、监控系统

3、可视化

没有完备的、可观察的监控系统就无法保障系统的稳定性。

监控、追踪工具

Grafana监控工具:Prometheus,指标数据

Jaeger作为追踪系统:调用链跟踪

Kibana系统:日志

4、安全

多个组件协同

Ctadel:密钥和证书管理

Pilot:授权策略等信息分发给Envoy代理

Envoy:根据策略实现服务间安全通信

Mixer:负责管理授权等工作

认证:istio的2种类型的身份认证——传输认证(服务间)、来源认证(最终用户认证,验证终端用户或设备,JWT(JSON Web Token)实现)

授权:沿用K8S的授权方式RBAC(Role-Based Access Control),不同级别的访问控制(命名空间级别、服务级别、方法级别)

Pilot + Envoy代理

---

 

Istio:

开源的S.M.产品,提供了统一的方式 管理流量、设置安全和监控等服务治理的能力。

数据平面、控制平面。各个组件充分解耦》优雅。第二代。

 

注:

书中第2章。

 

上一篇:idou老师带教你学Istio 03: istio故障注入功能的介绍和使用


下一篇:基于 Istio 的全链路灰度方案探索和实践