https://xie.infoq.cn/article/f87f793b7b666cb70d2727295

本文分享自华为云社区《深度剖析!Istio共享代理新模式Ambient Mesh》,作者:华为云云原生团队。

作者:华为云云原生团队 | GitHub ID:@hzxuzhonghu @zirain

今年 9 月份,Istio 社区宣布 Ambient Mesh 开源,由此引发国内外众多开发者的热烈讨论。实际上,通过与 Istio TOC 成员 linsun(https://github.com/linsun)的交流,我们得知早在 2021 年,Solo.io 已经开始共享代理的研究和设计,同样也是在 2021 年 Google 内部也在探索共享代理模式。因此,两家公司一拍即合,今年 4~5 月份开始以协作开发的方式,加速共享代理模式的发展。

目前 Ambient Mesh 已经发布预览版本,感兴趣的读者可以按需体验。由于篇幅限制,本文主要针对 Ambient Mesh 架构及四层流量治理的流程进行深度剖析,关于七层流量治理的详解,请关注后续文章。

1. Ambient Mesh 是什么

简单来讲,Ambient Mesh 是 Istio 服务网格的一种共享代理的新模式。它是由 Google 和 Solo.io 联合开发的一种新的数据面模式,旨在简化操作、提升应用兼容性并降低基础设施成本。Ambient 模式可在放弃引入 Sidecar 的情况下,保持 Istio 的零信任安全、流量管理和遥测等核心功能。

2. Ambient Mesh 架构分析

开始 Ambient 的架构之前,我们先简单回顾一下 Istio 的架构。其主要由两部分组成,分别是控制面和数据面。控制面 Istiod 进行基本的配置生成和推送,管理着所有的数据面;数据面引入 Sidecar 代理,接管应用的入口和出口流量。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/21b9dda6-7b24-4916-9174-cc91de6ec9cf/fe64a813b169eb5eaae966a4b4d1a287.png

图 1 Istio 架构

相比 Sidecar,Ambient Mesh 提供一种侵入性更低,升级管理更简单的选择。Ambient 将 Istio 的功能分成两个不同的层次,安全覆盖层(四层治理)和 七层 处理层(七层治理):

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/456c4e4b-0279-4e1e-a89a-2f6419c09dba/81489610e49ccc31bd46867a5ba14263.png

图 2 Ambient mesh 分 a 层

Ambient Mesh 下的负载可与 Sidecar 模式下的负载无缝互通,允许用户根据自己的需要来混合搭配使用两种模式。

在 Sidecar 模式下,Istio 通过 InitContainer 或 Istio-CNI 实现流量拦截。Ambient Mesh 下 Istio-CNI 是必选组件,下图展示了基本的 Ambient Mesh 四层治理架构: