扩展 Istio 请求路径的数据平面
在 Istio 的使用中,我们常常需要扩展其数据平面以满足特定的需求。下面将介绍几种扩展 Istio 数据平面的方法。
1. 用于扩展的过滤器
虽然可以用 C++ 编写自定义过滤器并集成到代理中,但这超出了本文的范围。我们可以通过以下 HTTP 过滤器来扩展 Envoy 的 HTTP 功能,而无需将更改编译到 Envoy 二进制文件中:
- 外部处理
- Lua
- Wasm(WebAssembly)
使用这些过滤器,我们可以配置对外部服务的调用、运行 Lua 脚本或运行自定义代码,以增强 HTTP 连接管理器(HCM)在处理 HTTP 请求或响应时的功能。对于调用外部服务进行处理,我们将重点关注速率限制过滤器,同时也可以进行外部授权调用。
2. 自定义 Istio 的数据平面
在了解了 Envoy 的过滤器架构后,我们可以使用以下方法扩展 Envoy 数据平面的功能:
- 使用 Istio API 中的 EnvoyFilter 资源配置 Envoy HTTP 过滤器
- 调用速率限制服务器
- 实现 Lua 脚本并加载到 Lua HTTP 过滤器中
- 为 Wasm HTTP 过滤器实现 Wasm 模块
下面是一个简单的 mermaid 流程图,展示了 HTTP 连接管理器的过滤器链:
graph LR
A
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



