当前位置:   article > 正文

Istio 实战:WasmPlugin(Proxy-Wasm 插件)功能拓展_istio wasm

istio wasm

功能一:添加 header(在代码里写死的 header,不做修改)

代码分析

主要是通过 proxywasm 库提供的 AddHttpRequestHeaderAddHttpResponseHeader 添加 header,同理可以实现 header 的删除和修改

部署生效

tinygo 编译生成 wasm 文件,dockerfile 生成镜像,然后在 wasmplugin 文件中引用该镜像

修改命名空间,执行 kubectl apply -f xxx.yaml 可以查看效果

apiVersion: extensions.istio.io/v1alpha1
kind: WasmPlugin
metadata:
  name: my-go-wasm-plugin
  namespace: mm-tmp
spec:
  selector:
    matchLabels:
      app: httpbin
  url: oci://registry.cn-hangzhou.aliyuncs.com/ydkmm/mm-github:1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

查看效果

reponse header
在这里插入图片描述

request header
在这里插入图片描述

功能二:通过配置文件的方式,读取字段完成添加 header

代码分析

首先通过 GetPluginConfiguration 获取到 yaml 中配置的数据,创建对应的结构体,通过 json 解析并存储,然后再对数据做处理后添加到对应的 header 上

部署生效

配置文件的方式与代码里写死的区别就是只需要生成一次镜像,每次改动 header 的配置不需要修改代码重新生成镜像,直接修改 wasmplugin 的 yaml 文件后重新 apply 就可以了

修改命名空间,执行 kubectl apply -f xxx.yaml 可以查看效果

apiVersion
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/784682
    推荐阅读
    相关标签
      

    闽ICP备14008679号