想象你管理着一片互联网产业园区,里面有几栋写字楼(Kubernetes 节点),每栋楼里租住着几十家公司(Pod,即微服务)。公司之间天天互寄材料(网络请求),最怕文件被人偷看、冒领。第一代服务网格的做法是:给每家公司的办公室门口配一个专属私人保镖(Sidecar 代理),24 小时核验来客身份、检查包裹。保镖很尽责,但开销惊人——几百家公司就要几百位保镖,每位都要工资、要宿舍;更头疼的是,每次给保镖换新制服(升级代理),都得敲开每家公司的门(重启 Pod),生意被迫停摆。 Ambient Mesh 换了一种思路:不在每家公司门口站人,而是在每栋楼的大堂装一台共享门禁闸机(ztunnel),统一刷卡验身份(mTLS 认证)、加密护送包裹;只有少数有特殊签收规矩的楼层,才按需请一位物业管家(waypoint)处理更复杂的包裹检查(L7 策略)。于是,安保开销不再跟着公司数量翻倍,而是跟着楼栋数量走——这正是“无 Sidecar 服务网格”的降本秘密。下面,我们就从“私人保镖”到“共享门禁”的这场变革讲起。
理解 Ambient Mesh,是云原生工程师优化集群资源账单、回答“服务网格为何需要一次架构升级”这类面试题的关键能力。它能帮你在同等安全水平下,把数据平面的代理成本降一个数量级。
目录
可视化演示
展示Ambient Mesh架构设计、ztunnel L4与Waypoint L7流量分离机制及与Sidecar模式资源对比,交互切换三种模式探索Sidecar-less服务网格。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+CAPS.mode1+'
服务网格演进:园区通信怎么变成安保问题
刚开始,你的互联网产业园只有两三家租户,互相串门喊一嗓子就行。可当园区入驻一百家公司后,问题扑面而来:A 公司要寄材料给 B 公司,得先知道 B 在哪个园区哪栋楼(服务发现);路上文件不能被隔壁公司拆看(加密);B 还要确认来客不是冒充的(认证)。最崩溃的是,一百家公司两两都可能往来,谁和谁有关系根本记不过来。
微服务架构面临同样的困境:服务数量一多,两两之间的调用关系呈平方级爆炸。业界早期用注册中心和 API 网关解决“找得到”的问题,但“怎么安全地聊、按什么规矩聊”这些深水区没人管。于是服务网格(Service Mesh)登场:把网络通信能力从业务代码里抽出来,下沉为独立基础设施层,就像把园区安保从各家公司自己雇人,升级成统一安保体系。
服务网格分两层:控制平面(control plane)负责下发规则,类似安保公司的监控调度中心;数据平面(data plane)负责实际执行,类似前线执行任务的保安。第一代数据平面的代表方案,就是在每个服务实例旁边挂一个代理进程,替它拦截和处理所有进出请求。
回到园区比喻:4950 条往来台账靠人力根本记不完,必须有一套统一的“安保系统”来管理。这就是服务网格诞生的理由——而它选用的“人形安保”方案,将是下一节讲的主角。
- n 表示服务总数园区里入驻的企业数量,例如 n=100。
- n-1 表示单家公司要打交道的对象数除自己以外,其余 n-1 家公司都可能产生往来。
- 除以 2 去掉重复关系A 寄给 B 和 B 寄给 A 是同一条业务链路,所以总数要折半。
Sidecar模式剖析:一家一位保镖的开销账本
第一代服务网格很像“私人保镖”模式:每家公司的办公室门口 24 小时站着一位专属保镖,工作就三件事——验来客身份、检查包裹、登记放行。保镖就住在公司办公室里(与业务容器同在一个 Pod),所有进出门口的快递都得先经他手。好处是保护极其细致:具体到哪个部门该收什么文件(路由规则)、什么级别的文件不能出门(L7 策略),都能管控。
这就是 Istio Sidecar 模式的技术现实:Sidecar 是一个独立的 Envoy 代理容器,通过 iptables 规则把 Pod 的进出流量全部劫持到代理,由它完成 mTLS 加密、负载均衡、熔断、灰度等能力。开发者写业务代码时根本不用关心网络,一切由这个“贴身保镖”包办——这是它风靡一时的原因。
但代价同样惊人:每个 Pod 都要多跑一个代理进程,几十上百 MB 内存的“保护费”乘以成百上千个 Pod,就是一张天价账单。更麻烦的是运维:每次升级代理版本,都要挨个重启 Pod。好比给一百位保镖换新制服,得敲开一百家公司的大门,每家都会因换装而短暂歇业。Sidecar 的资源开销与运维成本,正成为大型集群难以承受之重。
账单越算越心惊:当园区扩张到上千家公司时,“人均保镖成本 × 人数”的模式必然触碰预算天花板。于是人们开始追问:能不能不请这么多保镖?
- N_pod 是 Pod 总数需要保护的办公室数量,也是保镖人数。
- m_0 是每个代理的基础内存保镖站岗不动的“底薪”,与业务量无关。
- c × m_c 是随连接量增长的内存c 为并发连接数,m_c 是每条连接带来的边际内存开销,忙碌的保镖需要更多“加班费”。
Ambient架构设计:楼栋门禁与按需管家
Ambient Mesh 的方案是改变安保形态:别再给每家公司配私人保镖了,改为在每栋楼的大堂装一台共享门禁闸机——ztunnel。所有进出这栋楼的人流都经过闸机,完成“刷卡验身份 + 装进加密信封”(L4 层的 mTLS 认证与加密转发)。至于要不要进一步检查包裹内容、执行多步签收流程(L7 策略),则由楼里的“物业管家”(waypoint)按需提供——只有约定复杂签收规则的楼层才配管家,没有特殊需求的楼层看一眼门禁就够了。
Ambient Mesh 是 Istio 于 2022 年推出的无 Sidecar 数据平面模式,核心思想是把代理从“Pod 内”移到“节点层”,形成两层数据平面:底层 ztunnel 常驻每个节点,负责 L4 安全;上层 waypoint 按需启用,补充 L7 能力。启用 Ambient 后,Pod 不再注入任何代理容器,应用代码零改动、Pod 无需重启。
流量路径也彻底改变:业务流量绕过 Pod 内 iptables 劫持,直接从节点网络层进入 ztunnel,再通过 HBONE 加密隧道转发到对端节点的 ztunnel,最后交给目标 Pod。控制平面 Istiod 依旧保留,负责下发身份证书与策略,就像安保公司的调度中心仍然攥着所有人的门禁权限。
门禁加管家的架构,把“昂贵的人海战术”换成“基础设施共享”。这正是“无 Sidecar”三个字的精髓——不是没有代理,而是代理从每家专属变成了整楼公用。
- N_node 是集群节点数园区里楼栋的总数,每栋楼一台共享门禁。
- N_waypoint 是启用的管家数按需开启的 L7 代理数量,多数场景可以很少甚至为 0。
- 代理总数远小于 Pod 数当公司数量远大于楼栋数时,代理规模从 N_pod 降到 N_node 量级。
ztunnel代理详解:共享门禁的内部魔法
这台大堂里的门禁可不是普通保安亭,它是“读卡器 + 信封机 + 登记簿”三合一的智能闸机:读卡器确认每个进出者的身份(基于 SPIFFE 的身份认证),信封机自动把送出的每份文件装进加密信封(HBONE 隧道),登记簿记录每次经过的可观测数据(metrics、日志)。所有租户共用一台设备,效率极高。
ztunnel(zero-trust tunnel,零信任隧道)正是 Ambient Mesh 的数据平面核心。它通过 DaemonSet 在集群的每个节点上运行一个实例,为该节点上的所有 Pod 提供 L4 层的服务:mTLS 双向认证、流量加密、简单的 L4 鉴权和遥测采集。它的目标是“轻量但足够安全”——把最通用的安全能力集中起来,让每个 Pod 都免于背负代理包袱。
当 Pod A 要访问 Pod B 时,流量先到本节点的 ztunnel,ztunnel 验证对端身份后,用 HBONE(HTTP-Based Overlay Network Environment)协议把流量封装加密,转发到对端节点的 ztunnel,再由它解密交给目标 Pod。因为多个 Pod 共享一个代理,连接池、线程与证书都能复用,每条连接的平均边际成本被大幅摊薄。
同样是管一栋楼的安保,门禁把几百个保镖的重复成本化整为零。园区越大、人流越密,共享的规模效应越明显——这就是 ztunnel 在大型集群里“越用越划算”的秘密。
- N_node 是节点数每栋楼大堂一台门禁,楼越多门禁越多。
- m_base 是基础内存门禁待机时的固定功耗,与业务量无关。
- c_avg × m_c 是连接处理成本c_avg 为该节点平均并发连接数,m_c 是每条连接的边际内存。
- 除以共享因子 K所有 Pod 共享同一进程的资源池,连接越多,单价被摊得越薄。
对比Sidecar方案:两种安保模式的账单大PK
我们把同一栋 100 家公司的大楼拿来算两笔账:左边账单是 100 名私人保镖的工资、宿舍、换装费;右边账单是一台共享门禁加两三个管家的电费和维护费。差距肉眼可见。在真实 Kubernetes 集群里,这种差距体现在资源、性能、安全、运维四个维度。
资源层面,Istio 官方测试显示,Ambient 模式可将数据平面资源开销降低最高约 90%。Sidecar 模式每个 Pod 常驻代理占用 50-100MB 内存;Ambient 模式每个节点一个 ztunnel 虽然单体体积更大,但服务整节点成百上千个 Pod,摊薄到每个业务上是零头。性能层面,Sidecar 模式每个请求经过两跳代理、每 Pod 维护独立连接池,而 Ambient 的 L4 流量直接经节点代理转发,默认不经过 L7 深度处理,延迟更低、吞吐更高。
安全层面,Sidecar 可以提供 Pod 级最细粒度的 L4/L7 完整策略;Ambient 的 L4 安全由 ztunnel 承担,粒度在节点/工作负载组,L7 策略需要按需启用 waypoint。运维层面,Sidecar 升级要重启所有注入过的 Pod,Ambient 升级 ztunnel 以 DaemonSet 滚动进行,业务 Pod 全程无感——这正是“门禁换固件”和“挨家敲门换制服”的区别。
当然,更省钱不等于免费:如果你需要精确到“每个部门、每种文件级别”的管控(细粒度 L7 策略),就得为相关楼层启用管家(waypoint)。这是一场“成本与粒度”的权衡,而 Ambient 把选择权交到了你手里。
- M_sidecar 是 Sidecar 模式总内存100 名保镖的工资与宿舍开支总和。
- M_ambient 是 Ambient 模式总内存门禁与管家的维护总开支。
- 做差、除以原值、乘 100%把“少花的钱”占“原方案开销”的比例算出来。
部署实践指南:给园区装上共享门禁
决定整改后,怎么把园区从“私人保镖”平滑切换到“共享门禁”?好消息是:不需要重新装修任何一间办公室。门禁是外挂式的——先在每栋楼装好门禁机(部署 ztunnel),再对目标楼层下发“启用门禁”的通知(给命名空间打标签),楼里的公司(Pod)完全不用搬家、不用停业。
具体到操作,Ambient Mesh 基于 Istio 提供,部署路径很清晰:先通过 istioctl install --set profile=ambient 安装启用 ambient profile 的 Istio,此时 ztunnel 会以 DaemonSet 方式在每个节点启动。然后对命名空间打标签启用网格:
打上标签后,该命名空间内新建和已存在的 Pod 都会被节点上的 ztunnel 自动纳管,应用代码零改动、Pod 零重启。Istiod 控制平面会为每个工作负载签发基于 SPIFFE 的身份证书,并下发到对应节点的 ztunnel。验证方式很简单:kubectl get pods -n istio-system | grep ztunnel 看到 Running 状态,再检查业务 Pod 间流量是否已被加密转发即可。
从“敲一百户的门换制服”到“远程升级门禁固件”,这不仅是效率提升,更是运维模式的质变。而且想小范围试点?只给一个命名空间打标签即可——这种渐进式接入能力,为后续迁移提供了绝佳的灰度路径。
- P_restart 是需要重启的 Pod 数Ambient 模式下数据平面升级不触碰业务 Pod。
- P_total 是业务 Pod 总数集群中参与网格的业务实例总数。
- 比值恒等于 0分子为 0,任何规模下升级影响都是零。
kubectl label namespace default istio.io/dataplane-mode=ambient场景与选型建议:什么时候该换方案
不是所有园区都适合上共享门禁。如果一栋楼只租给 3 家公司,请 3 个保镖反而更灵活;如果是一栋 100 家公司、人流密集的商业综合体,共享门禁的高效才能完全释放。选哪种安保模式,本质是“算清自己的账”。选型可以用四个维度来打分:性能要求、成本敏感度、安全粒度需求、改造意愿。
把各维度归一化后加权求和,就能得到一个综合适宜度分数。适合 Ambient 的典型画像:大规模集群(Pod 上千)想砍掉网格开支;绝大多数内部服务只需要 mTLS 加密和基本访问控制,对 L7 高级策略需求不多;希望零重启、零代码改动地渐进式迁入网格;节点资源紧张(边缘集群、小规格虚拟机)扛不住每 Pod 一个代理。
仍然适合 Sidecar 的场景:业务需要按 JWT 声明、URL 路径做最细粒度的 L7 路由和授权;团队对新架构持保守态度、暂不接受 waypoint 引入的新概念;或者合规要求每个工作负载必须拥有独立隔离的代理进程。演进趋势上,Ambient 正在快速补齐 L7 能力,Istio 社区已将其定位为服务网格的下一代数据平面。
门禁不一定比保镖好,保镖也不一定比门禁好——关键看你的楼里有多少公司、需要什么级别的安保。Ambient Mesh 的价值,是给了云原生架构一个“更轻的选项”,让服务网格从“奢侈品”变成“日用品”。
- w_i 是各维度权重优先级不同权重不同,例如预算紧张就调大 w_2。
- 性能/成本/安全是归一化得分每项映射到 0~1 区间后加权求和。
- 减去改造量项迁移成本越高,综合适宜度越低。
AI 应用场景
场景1:大型电商大促前的网格降本
阶段:云原生基础设施优化(成本治理)
解决的问题:传统 Sidecar 模式下,数千个 Pod 各挂一个代理,大促扩容时代理内存账单跟着 Pod 数翻倍,运维团队不得不在“可观测性”和“预算”之间二选一。Ambient 把代理收敛到节点级,扩容只增加轻量的节点代理,Pod 数翻倍时数据平面开销几乎不涨。
具体案例:某电商平台在 2000+ Pod 集群中迁移 Ambient 后,数据平面内存占用从约 180GB 降至 40GB 以下,业务接口延迟无明显变化,大促期间不再因代理资源告警而被迫关闭监控能力。
场景2:多租户 SaaS 渐进式接入网格
阶段:服务治理与安全加固
解决的问题:一次性全量注入 Sidecar 风险大、回滚难,新租户上线要经历漫长的灰度验证。Ambient 按命名空间启用,可以给新租户先接入获得 mTLS 加密,L7 策略后置补充,灰度范围完全可控。
具体案例:某 SaaS 厂商为每个租户分配一个命名空间,运维团队逐个命名空间打上 istio.io/dataplane-mode=ambient 标签,两周内完成 60 个租户的 mTLS 全覆盖,全程零 Pod 重启、零业务代码改动。
场景3:边缘机群的轻量化部署
阶段:资源受限环境的基础设施部署
解决的问题:边缘节点 CPU 和内存普遍紧张,塞不下“每 Pod 一个代理”的固定开销。Ambient 每节点仅需一个 ztunnel 共享代理,把安全能力摊薄到整节点,让边缘服务也能享受服务网格的加密与观测能力。
具体案例:某物联网厂商在数百个 2C4G 的边缘节点上部署 Ambient,ztunnel 常驻内存仅占节点总内存的一成左右,业务 Pod 完全无注入负担,设备数据上报链路的加密与鉴权全部由门禁代理透明完成。
Python 演示
# 对比 Sidecar 模式与 Ambient 模式的资源开销 class MeshSimulator: """模拟两种服务网格数据平面的资源账单.""" def __init__(self, pods, nodes, sidecar_mb=60, ztunnel_mb=800, waypoint_mb=256): self.pods = pods # 业务 Pod 总数 self.nodes = nodes # 集群节点数 self.sidecar_mb = sidecar_mb # 单个 Sidecar 平均内存 self.ztunnel_mb = ztunnel_mb # 单个 ztunnel 内存 self.waypoint_mb = waypoint_mb # 单个 waypoint 内存 def sidecar_total(self): # 每个 Pod 一个 Sidecar, 总内存 = Pod 数 x 单代理内存 return self.pods * self.sidecar_mb def ambient_total(self, waypoints): # 每个节点一个 ztunnel, 另加按需启用的 waypoint return self.nodes * self.ztunnel_mb + waypoints * self.waypoint_mb def saved_ratio(self, waypoints): sc = self.sidecar_total() am = self.ambient_total(waypoints) return (sc - am) / sc * 100 def report(self, waypoints=4): sc = self.sidecar_total() am = self.ambient_total(waypoints) return ( "=== 资源账单对比 ===\n" "业务 Pod: %d 节点: %d\n" "Sidecar 模式总内存: %d MB\n" "Ambient 模式总内存: %d MB (waypoint=%d)\n" "节省比例: %.1f%%" % (self.pods, self.nodes, sc, am, waypoints, self.saved_ratio(waypoints)) ) def main(): sim = MeshSimulator(pods=1200, nodes=30) print(sim.report(waypoints=6)) print("--- 不同规模下的节省比例 ---") for pods in (300, 600, 1200, 3000): s = MeshSimulator(pods=pods, nodes=30) print("Pod=%5d: 节省 %5.1f%%" % (pods, s.saved_ratio(waypoints=6))) if __name__ == "__main__": main()
self.pods = pods记录业务 Pod 总数,相当于园区里的公司数量。def sidecar_total(self):计算 Sidecar 模式总内存,公式对应正文中的“总保护费 = 人数 × 人均成本”。return self.pods * self.sidecar_mb每个 Pod 挂一个代理,总内存随 Pod 数线性增长。def ambient_total(self, waypoints):计算 Ambient 模式总内存,对应“门禁 + 管家”的开销模型。return self.nodes * self.ztunnel_mb + waypoints * self.waypoint_mb节点数乘以单门禁内存,再加上按需启用的管家内存。(sc - am) / sc * 100计算资源节省率,也就是正文中的 η 公式的代码实现。if __name__ == "__main__":可执行入口,直接运行即可看到不同规模下的账单对比。
常见误区
误区我以为 Ambient Mesh 就是删掉了所有代理,网格的安全功能全部取消,服务之间等于裸奔通信。
正解代理依然存在,只是换了位置和形态:ztunnel 以 DaemonSet 方式在每个节点常驻一个共享实例,负责 L4 的 mTLS 认证、加密和遥测;需要 L7 策略时才按需启用 waypoint。类比园区安保:不是取消了保安,而是从“每间办公室门口站一个人”变成“每栋楼大厅装一台共享门禁”——核验与加密都在,只是执行者从个体变成了共享设施。
为何常见:因为名字叫“无 Sidecar”,初学者容易把 Sidecar 等同于“代理”,于是顺理成章地以为代理被整体移除了。
误区贴身保镖肯定比共享门禁安全,Ambient 一定是因为不安全才省下这么多资源。
正解两种模式都使用基于 SPIFFE 身份的 mTLS 双向认证与 HBONE 加密隧道,传输安全等级相当。差别在策略粒度:Sidecar 可以精确到 Pod 级 L7 路由与授权,Ambient 默认提供 L4 安全,细粒度 L7 策略通过按需 waypoint 补齐。对大多数只需要“通信加密 + 身份互认”的内部服务,Ambient 完全够用——安全没有变弱,而是被集约化了。
为何常见:“投入少 = 安全弱”的直觉。人们习惯把资源投入量等同于安全强度,忽略了共享设施执行着完全相同的加密算法与证书体系。
误区ztunnel 名字里带 tunnel,一听就是入口隧道,肯定负责管理外部请求进入集群的流量。
正解ztunnel 属于数据平面,主要处理东西向(服务到服务)流量,是业务 Pod 访问其他 Pod 时经过的节点级代理;南北向入口流量由独立的 Ingress/Egress 网关负责。类比园区:门禁是楼内各公司互相寄文件的通道,而园区大门的访客接待处(Ingress 网关)才是外部访客进入的入口,两者分工完全不同。
为何常见:服务网格与 API 网关概念容易混淆,加上 “tunnel“ 这个词让人联想到”隧道入口”,从而错配了东西向与南北向的职责。
误区迁移到新网格架构,肯定要改代码、改 Deployment,还要把所有 Pod 重建一遍。
正解Ambient 对应用完全透明:不需要改业务代码、不需要注入容器、不需要重启 Pod。只需给命名空间打上 istio.io/dataplane-mode=ambient 标签,该命名空间下新建和已有的 Pod 都会被节点上的 ztunnel 接管。类比来说:装的是楼道公共门禁,不是给每间办公室重装防盗门——办公室里的摆设(容器)完全没动。
为何常见:早期 Istio Sidecar 注入必须重建 Pod,很多人把“迁移网格”和“重启服务”画了等号,形成了惯性联想。
误区Ambient 既然把代理升级成了节点级,那原来的 L7 高级策略(路由、限流、故障注入)肯定都能在 ztunnel 上直接实现。
正解ztunnel 的设计目标是轻量、共享,默认只处理 L4 能力(mTLS 加密、身份认证、TCP 访问控制、遥测)。所有 L7 能力(按 URL/JWT 路由、重试、熔断等)由独立的 waypoint 代理按需承载。如果让每个请求都经过一层完整 Envoy L7 处理,延迟和开销会显著上升,违背“低开销”的初衷。类比:门禁只负责刷卡放行和封装信封,“包裹里有没有违禁品、是否必须本人签收”由物业管家决定。
为何常见:人们误以为 Ambient 是“更强的单个代理”,没理解它其实是“更省的分工体系”——ztunnel 与 waypoint 各管一层,各司其职。
面试题
Q1. Ambient Mesh 中 ztunnel 的部署形态是?
- A.在业务 Pod 内部注入边车容器
- B.在每个节点上以共享代理运行← 正确答案
- C.部署为集群级的中心代理服务
- D.作为 API 网关部署在集群入口
答案:B。ztunnel 以 DaemonSet 方式每个节点运行一个实例,服务该节点上的所有 Pod,如同园区每栋楼大堂装一台共享门禁。A 是 Sidecar 模式,C 是中心化代理的误解,D 是南北向网关的职责。
Q2. “无 Sidecar 服务网格”的核心含义是?
- A.彻底移除数据平面所有代理组件
- B.代理从 Pod 内移出到节点层共享← 正确答案
- C.不再需要双向 TLS 加密服务流量
- D.只用网关处理所有微服务调用
答案:B。“无 Sidecar”指代理不再住在 Pod 里,而是上移到节点层共享,变成 ztunnel。A 走极端:代理没有消失;C、D 与事实不符,加密和 east-west 流量处理依然由 ztunnel 完成。
Q3. Ambient Mesh 对业务应用透明体现在?
- A.无需修改代码且无需重启业务 Pod← 正确答案
- B.需要为每个服务配置独立注解
- C.必须把所有接口改成 gRPC 协议
- D.要求业务容器以 Root 权限运行
答案:A。启用 Ambient 只需给命名空间打标签,业务代码零改动、Pod 零重启。就像楼道装公共门禁,办公室无需重新装修。B、C、D 都是对迁移成本的虚构。
Q4. ztunnel 默认负责处理哪一层流量?
- A.L4 传输层(mTLS 与身份认证等)← 正确答案
- B.L7 应用层(路由与限流策略等)
- C.L2 数据链路层(ARP 与交换机)
- D.同时完整处理 L4 和 L7 全部流量
答案:A。ztunnel 定位是轻量 L4 代理,处理 mTLS 加密、身份认证和 TCP 级鉴权;L7 策略由 waypoint 承载,若 ztunnel 全量做 L7,所有请求都会背上沉重处理开销,失去共享代理的低成本优势。
Q5. waypoint 代理在 Ambient Mesh 中的定位是?
- A.每个 Pod 都必须部署一个实例
- B.按需启用的 L7 策略执行代理← 正确答案
- C.替代 ztunnel 完成身份认证
- D.专门处理南北向的入口流量
答案:B。waypoint 按需启用,只有需要 L7 策略的工作负载才配置,类似楼栋里按需请的物业管家。它不是每个 Pod 必备,也不负责 L4 身份认证,南北向入口由独立网关承担。
Q6. 相比 Sidecar 模式,Ambient 的主要优势是?
- A.取消控制平面并支持完全离线
- B.数据面开销低且升级无需重启← 正确答案
- C.支持所有旧版 Istio 高级功能
- D.不再需要任何加密与认证能力
答案:B。Ambient 的资源节省源于代理共享,升级 ztunnel 是节点级滚动,业务 Pod 全程无感。控制平面 Istiod 依然保留,C、D 都是不实描述。这正是“门禁换固件 vs 挨家敲门换制服”的差异。
Q7. 启用某个命名空间的 Ambient 模式应?
- A.给命名空间打上 ambient 数据面标签← 正确答案
- B.为每个 Pod 手动添加 init 容器
- C.修改 Deployment 注入 proxy 镜像
- D.删除命名空间内所有应用原 Pod
答案:A。官方启用方式是对命名空间打标签 istio.io/dataplane-mode=ambient,之后该命名空间下 Pod 自动纳管。B 和 C 是 Sidecar 注入思路,D 会造成业务中断,均与 Ambient 的透明接入理念相悖。
Q8. Ambient 模式的两层数据平面由哪些组成?
- A.节点级共享的 ztunnel 代理← 正确答案
- B.按需启用的 waypoint 代理← 正确答案
- C.每个 Pod 内注入的 Envoy 边车
- D.集群级别的集中式中心代理
答案:AB。Ambient 的两层 = 节点级 ztunnel(L4)+ 按需 waypoint(L7)。C 是 Sidecar 模式特征,D 是中心化代理的错误设计。对应园区比喻:门禁 + 管家,两者缺一不可。
Q9. 相比 Sidecar 模式,Ambient 的架构优势有哪些?
- A.代理数量与节点数挂钩而非 Pod 数← 正确答案
- B.数据平面升级时业务 Pod 无需重启← 正确答案
- C.控制平面的配置下发被完全取消
- D.支持按命名空间渐进式启用网格← 正确答案
答案:ABD。Ambient 将代理数量从 N_pod 降为 N_node 量级,升级免重启,且可按命名空间打标签渐进接入。控制平面 Istiod 仍然负责下发身份与策略,因此 C 错误。
Q10. ztunnel 获取工作负载身份的方式是?
- A.通过 SPIFFE 证书与 SDS 动态签发← 正确答案
- B.直接读取 Pod 内的明文 Secret 文件
- C.由 Ingress 网关统一代理所有认证
- D.使用集群管理员预置的静态密钥
答案:A。ztunnel 通过 Istiod 的 SDS(Secret Discovery Service)动态获取基于 SPIFFE 的工作负载证书,支持自动轮换,无需明文 Secret 或静态密钥。B、D 是安全反模式,C 错在把身份认证职责推给南北向网关。