阿里云服务网格 ASM 正式支持 Ambient 模式

简介: 阿里云服务网格ASM 1.25版本正式支持Ambient模式,通过Ztunnel和Waypoint代理实现分层流量处理,降低理解成本,提升转发性能。

【阅读原文】戳:阿里云服务网格 ASM 正式支持 Ambient 模式

阿里云服务网格(Alibaba Cloud Service Mesh,ASM)是阿里云提供的全托管式服务网格平台。ASM 在最新发布的 1.25 版本中正式支持 Ambient 模式


 

Ambient 模式由来

 

 

Sidecar 是服务网格中最广为人知的概念之一。该模式下,ASM组件通过在 Pod 启动时为 Pod 注入一个 Sidecar 容器来实现流量的拦截和处理,该模式已经演进了多年,功能十分丰富,并且支持了众多企业的生产业务。

 

Sidecar 生命周期和业务容器强绑定,这种架构为 Pod 提供了更高的安全性,但是也带来了更高的资源消耗和维护负担。因此,服务网格于 2022 年提出了 Ambient 模式,经过不断迭代,ASM 在最新的 1.25 版本中正式支持了 Ambient 模式


 

焕然一新的使用体验


 

Ambient 是一种新的 Sidecarless 类型的数据面架构,其核心思路是 4 层和 7 层处理解耦。使用 Ambient 模式后,您在应用 Pod 中将不会看到 Sidecar 容器。

 

您只需为命名空间启用 Ambient 模式,应用就会立刻切换到 mTLS 通信并且可以使用部分 L4 功能。整个过程完全无需重新部署应用。

 

如果您确认某些应用需要使用 L7 能力,比如根据 HTTP 请求头鉴权和路由、7 层可观测等,您可以选择性的为指定的 Service 开启 Waypoint 代理。Waypoint 是一个单独的 Deployment,和应用完全解耦,您可以单独进行扩缩容以及升级操作,仍然无需重启应用。Waypoint 基于 Envoy 代理实现,提供了完整的 7 层功能,支持丰富的路由、安全以及可观测能力,并且支持使用 WASM 插件进行扩展。

 

在 Ambient 模式中,ASM 和应用完全解耦,您不再需要考虑升级或者启用时的 Pod 重启操作。

 

 

实现原理

 

 

只需要给命名空间开启 Ambient 模式,无需重启应用注入 Sidecar,即可立刻启用加密通信并且可以使用一些 L4 功能。这样神奇的效果是如何实现的呢?

 

Ztunnel 和 CNI 组件是实现这一过程的关键。

 

Ztunnel 组件是实际的 L4 代理,使用 Rust 语言开发。

CNI 组件负责将流量重定向到 Ztunnel。

 

当您在命名空间级别启用 Ambeint 模式后,Ztunnel 组件会在自己的进程内部为每个业务 Pod 启动一个对应的虚拟 Proxy,这个虚拟的 Proxy 工作在业务 Pod 的网络命名空间下。因此您无需重启业务 Pod 来部署 Sidecar,Ztunnel 和 CNI 组件就可以透明的加密和 4 层流量处理。

 

有了 Ztunnel 组件,Waypoint 也就更加容易理解。ASM 控制面可以感知到您为哪个服务启用了 Waypoint 代理,Ztunnel 组件会自动将流量转发给对应的 Waypoint。

 

 

更高性能,更低成本

 

更高性能

 

如果您的业务无需高级 7 层功能就可以满足需求,此时流量只会经过两次 Ztunnel 4 层处理,相比 Sidecar 的两次 Envoy 7 层处理,性能会有显著提升,平均延迟可以降低约 75%(数据来自服务网格社区文档)。

 

如果您的业务需要 7 层功能,此时链路中多了一个 Waypoint的7层处理,相比Sidecar模式下两次7层处理,性能也有可观的提升,平均延迟可以降低约30%。

 

更低成本

 

Ambient 模式实现了 Node 级别的 L4 代理复用以及命名空间级别的 L7 代理复用,相比 Sidecar 模式,其资源消耗大大降低。您可以以更低的成本使用服务网格的各项能力。


 

 

Sidecar 和 Ambient 功能对比


 

  Sidecar Ambient
流量管理 完整的 Istio 功能集 完整的 Istio 功能集(需要使用 waypoint)
安全 完整的 Istio 功能集 完整的 Istio 功能集:Ambient 模式下具备加密和 L4 鉴权。需要 waypoint 才能进行 L7 鉴权。
可观测性 完整的 Istio 功能集 完整的 Istio 功能集:Ambient 模式下具备 L4 遥测;使用 waypoint 实现 L7 可观测性
可扩展性 完整的 Istio 功能集 通WebAssembly(需要使用 waypoint)
熔断、限流 支持 支持(需要使用Waypoint)
向网格添加工作负载 为命名空间添加标签并重启所有 Pod 以添加 Sidecar 为命名空间添加标签 - 无需重启 Pod
递增式部署 二进制:Sidecar 是否已被注入 渐进式:L4 始终开启,L7 可通过配置添加
生命周期管理 代理由应用开发人员管理 平台管理员
资源利用率 浪费;必须考虑到每个单独 Pod 的最糟情况并配置最大的 CPU 和内存资源

waypoint 代理可以像任何其他 Kubernetes Deployment 一样自动扩缩容。

有多个副本的工作负载可以使用同一个 waypoint,而不是每个副本都有自己的 Sidecar。

平均资源成本
平均延迟(p90/p99) 0.63ms-0.88ms

Ambient:0.16ms-0.20ms

waypoint:0.40ms-0.50ms

L7 处理步骤 两步(源和目标 Sidecar) 一步(目标 waypoint)
大规模配置 需要通过Sidecar CR来削减配置量 只下发需要的配置,更适应大规模场景
支持“服务器优先”协议 需要明确配置。
对 Kubernetes Job 的支持 由于 Sidecar 使用寿命长而变得复杂 透明支持
安全模型 最强:每个工作负载都有自己的密钥 强:每个节点代理仅具有该节点上工作负载的密钥

被入侵的应用 Pod

可访问网格密钥

可以 不可以
多集群支持 支持多种多集群模式 目前不支持多集群,正在演进中。

 

 

总结

 

 

在 ASM 1.25 版本中,Ambient 模式的核心能力已经稳定,并且良好的适配了阿里云容器服务环境,期待您的使用与反馈。

 

目前 1.25 已经正式上线,您可以参考该文档在ACK集群中体验 Ambient 模式:

https://help.aliyun.com/zh/asm/ambient/getting-started/

 

如果您对于 ASM 有任何疑问,欢迎搜索群号 30421250 加入钉钉交流群。




我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关文章
|
4月前
|
运维 Kubernetes 安全
ASM Ambient 模式如何革新 Kubernetes 出口流量管理
ASM Ambient 模式通过 Waypoint 代理简化 Kubernetes 出口流量管理,大幅降低配置复杂度。
|
Kubernetes 大数据 调度
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,本文介绍了如何在阿里云ACK集群中部署Kmesh作为Sidecarless数据面并连接ASM控制面。
|
Kubernetes 调度 容器
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,其中Sidecarless模式如Istio Ambient、ACMG和Kmesh等,可减少延迟和资源消耗。Kmesh基于eBPF技术,通过内核空间拦截流量,结合Waypoint Proxy处理L7流量,实现高效的服务治理。本文介绍了如何在阿里云ACK集群中部署Kmesh并连接ASM控制面,包括安装步骤、检查服务状态和流量调度示例。
325 0
|
Cloud Native 容器 Kubernetes
基于阿里云服务网格流量泳道的全链路流量管理(三):无侵入式的宽松模式泳道
本文简要讨论了使用流量泳道来实现全链路流量灰度管理的场景与方案,并回顾了阿里云服务网格 ASM 提供的严格与宽松两种模式的流量泳道、以及这两种模式各自的优势与挑战。接下来介绍了一种基于 OpenTelemetry 社区提出的 baggage 透传能力实现的无侵入式的宽松模式泳道,这种类型的流量泳道同时具有对业务代码侵入性低、同时保持宽松模式的灵活特性的特点。同时,我们还介绍了新的基于权重的流量引流策略,这种策略可以基于统一的流量匹配规则,将匹配到的流量以设定好的比例分发到不同的流量泳道。
73755 16
基于阿里云服务网格流量泳道的全链路流量管理(三):无侵入式的宽松模式泳道
|
运维 Serverless API
两全其美,Sidecarless 与 Sidecar 模式融合的服务网格新形态
本文主要介绍 ASM 如何落地这种 Sidecarless 和 Sidecar 模式融合的服务网格新形态,以及服务网格的 Serverless 化。
53210 101
|
网络协议 Linux Perl
如何构建 Sidecarless 模式的高性能服务网格
如何构建 Sidecarless 模式的高性能服务网格
685 70
|
运维 负载均衡 监控
如何构建Sidecarless模式的高性能服务网格
以上步骤可以帮助你构建一个Sidecarless模式的高性能服务网格。但是,请记住,每个应用都有其特定的需求和约束,你可能需要根据你的具体情况进行调整。
133 1
|
负载均衡 安全 Cloud Native
服务网格的工作原理:解析服务网格的核心组件和通信模式
服务网格的工作原理:解析服务网格的核心组件和通信模式
200 0
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
763 2