1. Wasm 在云原生基础设施的定位中 containerd wasm shim(runwasi)以及 Wasm 容器与 OCI 容器在启动速度/资源占用/安全隔离上的对比
Wasm 在云原生基础设施中的定位是什么?containerd wasm shim(runwasi)如何工作,Wasm 容器与 OCI 容器在启动速度、资源占用与安全隔离上如何对比?
- Wasm 在云原生基础设施中的定位与 use case
- runwasi(containerd wasm shim)的工作原理
- Wasm 容器与 OCI 容器在多维度的对比
Wasm 在云原生基础设施中的定位是"轻量、安全、可移植的运行时":它用于运行 Wasm 工作负载(尤其 Serverless、边缘、插件、无服务函数),与 OCI 容器互补而非取代。containerd wasm shim(runwasi)是让 containerd 能够运行 Wasm 工作负载的 shim 实现——它把 Wasm 作为 OCI Runtime 的一类,通过 CRI 与 containerd 集成,使 Kubernetes 能像调度容器一样调度 Wasm 工作负载(Wasm 作为镜像分发、Pod 作为调度单元)。对比:启动速度——Wasm 无需启动完整 OS/进程树,冷启动毫秒级(远快于容器的百毫秒级);资源占用——Wasm 共享宿主进程、无独立 OS 内核资源,内存占用小、无进程开销,比容器更轻;安全隔离——Wasm 默认线性内存隔离 + 能力限制(WASI),无系统调用直通,攻击面比容器利用内核隔离更小、更可控,但隔离在于"能力"而非"内核",与容器的沙箱(runc 内核隔离、gVisor 等)是不同的安全模型。定位上,Wasm 适合"很多小、短命、并发高"的负载,容器适合"通用、依赖完整 OS 环境"的负载。
定位的核心是"各取所长"。Wasm 的轻量、快速启动、细粒度安全适合 Serverless/边缘/插件;容器适合通用应用。runwasi 打通了 Kubernetes 生态,让 Wasm 能复用容器编排。对比要抓住三个维度:启动(毫秒 vs 百毫秒)、资源(共享宿主 vs 独立 OS)、安全(能力模型 vs 内核模型)。
# runwasi 使 containerd 能运行 Wasm 工作负载(示意)
# containerd 配置中启用 runwasi shim,将 Wasm 作为 OCI Runtime 运行
# 通过 CRI 调度的 Wasm Pod 与普通容器 Pod 的调度模型一致