WebAssembly 模块分发
在您开始这项任务之前,请部署示例应用程序。
配置 Wasm 模块
在这个例子中,您将在您的网格中添加一个 HTTP Basic 身份验证扩展。您将配置 Istio 从远程镜像仓库中提取并加载。该模块将被配置为在调用到 时运行。
为了配置一个具有远程 Wasm 模块的 WebAssembly 过滤器,创建一个 WasmPlugin
资源:
如果在 istio-system
之外的特定命名空间中创建了 WasmPlugin
,则该命名空间中的 Pod 将被配置。如果在 命名空间中创建资源,所有命名空间都会受到影响。
不带凭据测试
/productpage
带凭据测试
/productpage
清理 Wasm 模块
有几个统计数据可以跟踪远程 Wasm 模块的分发状态。
Istio 代理收集以下统计信息:
istio_agent_wasm_cache_lookup_count
: Wasm 远程获取缓存查找的次数。- : Wasm 配置转换和结果的数量,包括成功、没有远程加载、编组失败、远程获取失败和未收到远程获取提示。
istio_agent_wasm_remote_fetch_count
: Wasm 远程获取和结果的数量,包括成功、下载失败和校验和不匹配。
如果由于下载失败或其他原因而拒绝了 Wasm 过滤器配置,则 istiod 也会发出带有类型标签 type.googleapis.com/envoy.config.core.v3.TypedExtensionConfig
的 pilot_total_xds_rejects
。
开发 Wasm 扩展
此模块的分发机制有一些已知的限制,将在未来的版本中解决: