Istio 社区推出无 sidecar 代理数据平面模式 Ambient Mesh

Istio 社区推出无 sidecar 代理数据平面模式 Ambient Mesh
最新回答
一川绿风

2022-01-05 09:18:28

Istio 社区推出的无 sidecar 代理数据平面模式 Ambient Mesh,旨在简化操作、扩大应用兼容性并降低基础设施成本,提供了一种侵入性更低、更灵活的服务网格解决方案。

一、Istio 传统 sidecar 模式的局限性
  • 侵入性:sidecar 需通过修改 Kubernetes pod 配置并重定向流量注入应用,安装或升级需重启应用 pod,可能破坏工作负载。
  • 资源利用率低:每个工作负载 pod 需预留 CPU 和内存供 sidecar 使用,导致集群整体资源利用率下降。
  • 流量中断:流量捕获和 HTTP 处理计算成本高,可能破坏不符合 HTTP 实现的应用程序。
二、Ambient Mesh 的分层架构

Ambient Mesh 将 Istio 功能分为两个层次:

  • 安全覆盖层:处理流量路由和零信任安全,包括 mTLS、遥测、认证和 L4 授权,无需终止或解析 HTTP。
  • L7 处理层:当需要高级功能时,用户可启用 L7 处理,获得 Istio 的全部功能。L7 处理作为基础设施的环境组件运行,无需修改应用 pod。

这种分层方法使用户能够以增量方型雀式采用 Istio,从无网格到安全覆盖,再到完全的 L7 处理,并根据需要以每个命名空间为基础进行平稳过渡。

三、Ambient Mesh 的核心组件
  • ztunnel(零信任隧道)

    在 Kubernetes 集群的每个节点上运行,作为共享代理。

    负责安全连接和验证网格内元素,实现零信任核心功能。

    不对工作负载流量进行 L7 处理,仅处理 mTLS 和 L4 功能,资源占用低。

    节点网络堆栈将工作负载流量通过本地 ztunnel 重定向,实现数据平面与应用解耦。

  • Waypoint Proxy(路径点代理)

    基于 Envoy,用于处理命名空间的 L7 功能(如 Virtual Service API、L7 遥测、L7 授权策略)。

    作为普通 Kubernetes pod 运行,卜数早可自动扩展以适应实时流量需求。

    Istio 控制平面配置 ztunnel 通过 waypoint 代理传递需要 L7 处理的流量。

四、Ambient Mesh 的关键技术
  • HBONE(基于 HTTP 的重叠网络环境)

    使用 HTTP CONNECT over mTLS 实现安全隧道,并在路径中插入 waypoint 代理。

    提供比 TLS 更干净的流量封装,同时实现与普通负载均衡器基础设施的互操作性。

    默认使用 FIPS 构建,满足合规性需求。

五、Ambient Mesh 的优势
  • 资源开销更低

    ztunnel 作为共享资源部署在节点上,减少每个工作负载的资源预留。

    waypoint 代理可动态扩展,避免过度配置,提高集群利用率。

  • 安全性增强

    ztunnel 和 waypoint 代理与应用程序解耦,即使应用被破坏,仍可执行严格的安全策略。

    ztunnel 仅访问当前节点工作负载的密钥,攻击面有限。

    waypoint 代理限于为特定服务账户服务,风险可控。

  • 灵活性

    支持混合部署 sidecar 和 Ambient Mesh,无缝互通。

    用户可根据需求选择启用零信任安全或 L7 功能,避免不必要的处理开销。

六、Ambient Mesh 的适用场景
  • 需要简化操作和降低资源成本的用户:Ambient Mesh 通过共享代理和动态扩展减少了运维负担和毕誉资源浪费。
  • 对安全性有高要求但希望降低复杂性的用户:零信任架构与解耦设计提供了更清晰的安全边界。
  • 需要逐步迁移到服务网格的用户:分层架构支持从基础安全功能逐步扩展到完整 L7 处理。
七、未来展望
  • Istio 社区将继续完善 Ambient Mesh,计划在 2023 年使其达到生产就绪状态。
  • 用户可通过 Istio 实验版下载和试用 Ambient Mesh,并提供反馈以帮助改进。

Ambient Mesh 为服务网格用户提供了一种新的选择,在保持 Istio 核心功能的同时,解决了传统 sidecar 模式的诸多痛点。