《Istio入门与实战》 ——1.3.2 控制平面
1.3.2 控制平面
控制平面中主要包括Mixer、Pilot、Citadel部件。
1. Mixer
Mixer是一个与平台无关的组件。Mixer负责在服务网络中实施访问控制和策略,并负责从Envoy代理和其他服务上收集遥测数据。代理提取请求级别的属性并发送到Mixer用于评估,评估请求是否能放行。
Mixer有一个灵活的插件模型。这个模型使得Istio可以与多种主机环境和后端基础设施对接。因此,Istio从这些细节中抽象了Envoy代理和Istio管理的服务。
Mixer架构如图1-4所示。
图1-4 Mixer架构(图片来源:Istio官方网站)
在每一个请求过程中,Envoy代理会在请求之前调用Mixer组件进行前置条件检查,在请求结束之后上报遥测数据给Mixer组件。为了提高性能,每个Envoy代理都会提前缓存大量前置条件检查规则,当需要进行前置条件检查时,直接在缓存中检查规则。如果本地缓存中没有需要的规则,再去调用Mixer组件获取规则。Mixer组件也有自己的缓存,以加速前置条件检查。需要上报的遥测数据也会被Envoy代理暂时缓存起来,等待时机上报Mixer组件,从而减少上报数据的调用次数。
2. Pilot
Pilot为Envoy代理提供服务发现功能,并提供智能路由功能(例如:A/B测试、金丝雀发布等)和弹性功能(例如:超时、重试、熔断器等)。
Pilot将高级别的控制流量行为的路由策略转换为Envoy格式的配置形式,并在运行时分发给Envoy代理。Pilot抽象了平台相关的服务发现机制,并转换成Envoy数据平面支持的标准格式。这种松耦合设计使得Istio能运行在多平台环境,并保持一致的流量管理接口。
Pilot架构如图1-5所示。
图1-5 Pilot架构(图片来源:Istio官方网站)
Pilot抽象不同平台的服务发现机制,只需要为不同的平台实现统一的抽象模型接口,即可实现对接不同平台的服务发现机制。用户通过规则配置API来提交配置规则,Pilot把用户配置的规则和服务发现收集到的服务转换成Envoy代理需要的配置格式,推送给每个Envoy代理。
3. Citadel
Citadel内置有身份和凭证管理,提供了强大的服务间和终端用户的认证。Citadel可以把不加密的通信升级为加密的通信。运维人员可以使用Citadel实施基于服务身份的策略而不用在网络层控制。现在,Istio还支持基于角色的访问控制,用于控制谁能够访问服务。
- 点赞
- 收藏
- 关注作者
评论(0)