WebAssembly 模块分发

    在您开始这项任务之前,请部署示例应用程序。

    配置 Wasm 模块

    在这个例子中,您将在您的网格中添加一个 HTTP Basic 身份验证扩展。您将配置 Istio 从远程镜像仓库中提取并加载。该模块将被配置为在调用到 时运行。

    为了配置一个具有远程 Wasm 模块的 WebAssembly 过滤器,创建一个 WasmPlugin 资源:

    如果在 istio-system 之外的特定命名空间中创建了 WasmPlugin,则该命名空间中的 Pod 将被配置。如果在 命名空间中创建资源,所有命名空间都会受到影响。

    1. 不带凭据测试 /productpage

    2. 带凭据测试 /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.TypedExtensionConfigpilot_total_xds_rejects

    开发 Wasm 扩展

    此模块的分发机制有一些已知的限制,将在未来的版本中解决: