1.19.5. ServiceMeshExtension 参考
ServiceMeshExtension API 提供了通过 WebAssembly 过滤器扩展 Istio 代理提供的功能的机制。编写 WebAssembly 扩展有两个部分:
- 使用提供 proxy-wasm API 的 SDK 编写扩展,并将其编译到 WebAssembly 模块。
- 将它打包到容器中。
在创建新的 WebAsembly 扩展时,请使用 WasmPlugin。ServiceMeshExtension 从 Red Hat OpenShift Service Mesh 版本 2.2 开始已弃用,并将在以后的版本中删除。
字段 | 描述 |
---|---|
metadata.namespace |
|
spec.workloadSelector |
|
spec.config | 这是一个结构化字段,将被移交给扩展名,其语义取决于您要部署的扩展名。 |
spec.image | 指向包含扩展的镜像的容器镜像 URI。 |
spec.phase |
该阶段根据现有 Istio 功能,如身份验证、授权和指标生成,决定过滤器链中的扩展是否被注入。有效值为: PreAuthN、PostAuthN、PreAuthZ、PostAuthZ、PreStats、PostStats。此字段默认为扩展名的 |
spec.priority |
如果将具有相同 |
1.19.5.1. 部署 ServiceMeshExtension
资源
您可以使用 ServiceMeshExtension
资源启用 Red Hat OpenShift Service Mesh 扩展。在本例中,istio-system
是 Service Mesh control plane 项目的名称。
在创建新的 WebAsembly 扩展时,请使用 WasmPlugin。ServiceMeshExtension 从 Red Hat OpenShift Service Mesh 版本 2.2 开始已弃用,并将在以后的版本中删除。
有关使用 Rust SDK 构建的完整示例,请看标题附加过滤器。这是一个简单的过滤器,它会将一个或多个标头附加到 HTTP 响应中,其名称和值从扩展的 config
字段中获取。请参阅以下代码片段中的示例配置。
流程
创建以下示例资源:
ServiceMeshExtension 资源 extension.yaml 示例
apiVersion: maistra.io/v1 kind: ServiceMeshExtension metadata: name: header-append namespace: istio-system spec: workloadSelector: labels: app: httpbin config: first-header: some-value another-header: another-value image: quay.io/maistra-dev/header-append-filter:2.1 phase: PostAuthZ priority: 100
使用以下命令应用
extension.yaml
文件:$ oc apply -f <extension>.yaml