背景
WebAssembly是一种可以将多种语言编译成目标字节码,并在相应的wasm虚拟机中运行的技术。
在service mesh中,通常使用envoy作为proxy sidecar。而envoy是基于c++编写,扩展和定制稍有不便。
借助WebAssembly,我们可以利用其他语言比如AssemblyScript(ts),Rust等来编写envoy的扩展(类似与用lua扩展nginx),并在envoy中运行。
目前envoy官方仓库仅有wasm分支对wasm进行了实验性支持,所以本文基于gloo(官方支持wasm的一个api网关)进行搭建。
环境介绍
ECS:阿里云香港,2c4g,ubuntu20.04
本机:ubuntu18
搭建步骤
- docker
- minikube
- gloo
docker
参考:https://docs.docker.com/engine/install/ubuntu/
# 卸载原有docker安装
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
# 安装必要依赖
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 下载key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 验证key
$ sudo apt-key fingerprint 0EBFCD88
# 添加仓库
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 更新源、安装
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证安装
$ sudo docker run hello-world
minikube
先安装kubect

本文介绍了如何在阿里云ECS(ubuntu20.04)和本地ubuntu18环境中,利用docker、minikube和gloo搭建支持WebAssembly (WASM) 的API网关。通过gloo,可以使用AssemblyScript或Rust等语言扩展envoy,实现自定义代理功能。详细步骤包括docker、minikube和gloo的安装与配置,并提供了wasm插件的验证与部署教程链接。
最低0.47元/天 解锁文章
1531

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



