可扩展性

WebAssembly 是一种沙箱技术,可用于扩展 Istio 代理(Envoy)。Proxy-Wasm 沙箱 API 替代了 Mixer,成为 Istio 中主要的扩展机制。

WebAssembly 沙箱目标

  • 效率 - 扩展添加低延迟、CPU 和内存开销。
  • 功能 - 扩展可以强制执行策略、收集遥测数据和执行有效负载变异。
  • 隔离 - 一个插件中的编程错误或崩溃不会影响其他插件。
  • 配置 - 插件使用与其他 Istio API 一致的 API 进行配置。扩展可以动态配置。
  • 操作员 - 扩展可以作为仅日志、故障打开或故障关闭进行金丝雀发布和部署。
  • 扩展开发人员 - 插件可以使用多种编程语言编写。

这个 视频演讲 介绍了 WebAssembly 集成的架构。

高级架构

Istio 扩展(Proxy-Wasm 插件)包含多个组件

  • 过滤器服务提供者接口 (SPI) 用于为过滤器构建 Proxy-Wasm 插件。
  • 沙箱 嵌入 Envoy 中的 V8 Wasm 运行时。
  • 主机 API 用于标头、尾部和元数据。
  • 调用 API 用于 gRPC 和 HTTP 调用。
  • 统计和日志 API 用于指标和监控。
Extending Istio/Envoy
扩展 Istio/Envoy

示例

可以在 这里 找到用于过滤器的 C++ Proxy-Wasm 插件示例。您可以按照 本指南 使用 C++ 实现 Wasm 扩展。

生态系统

这些信息有用吗?
您是否有任何改进建议?

感谢您的反馈!