[istio] istio와 WASM 연동성

zzery·2022년 7월 13일

일지(2022~2024)

목록 보기
18/25

EnvoyFilter 개요

istio와 WASM의 연동성 정리


WASM (WebAssembly)

  • 웹 브라우저에서 JS 외의 언어로 개발한 프로그램을 실행할 수 있음.
  • 웹에서 실행하는 프로그램의 성능 개선을 위해 만들어짐.
  • 예시로는 C/C++ 프로그램 실행이 많이 나오는데, 다른 언어도 대부분 가능.
  • WASM은 개발 언어가 아니라 빌드 결과물 형식.

Public Registry & CLI

wasme는 아래의 SDK로 직접 개발할 때에도 필요함.

Proxy WASM SDK

github에서 proxy WASM SDK를 검색한 결과 - Go SDK가 제일 활발하게 업데이트되고 있음.


초기 템플릿 생성 과정

  • wasme
# 아래에서 받은 install script에서 python -> python3로 변경
curl -sL https://run.solo.io/wasme/install | sh
export PATH=$HOME/.wasme/bin:$PATH
  • tinygo
brew tap tinygo-org/tools
brew install tinygo
  • 템플릿 생성 (버전 확인 등 필요함)
❯ wasme init demo-filter
Use the arrow keys to navigate: ↓ ↑ → ←
? What language do you wish to use for the filter:
    cpp
    rust
    assemblyscript
  ▸ tinygo
? With which platforms do you wish to use the filter?:
  ▸ istio:1.7.x, gloo:1.6.x, istio:1.8.x, istio:1.9.x

✔ tinygo
✔ istio:1.7.x, gloo:1.6.x, istio:1.8.x, istio:1.9.x
INFO[0020] extracting 1416 bytes to /mnt/c/Users/user/Desktop/go-repo/demo-filter

❯ ls -al ./demo-filter
total 5
drwxrwxrwx 1 user user  512 Jul 14 00:27 .
drwxrwxrwx 1 user user  512 Jul 14 00:17 ..
drwxrwxrwx 1 user user  512 Jul 14 00:28 .git
-rwxrwxrwx 1 user user   83 Jul 14 00:23 go.mod #
-rwxrwxrwx 1 user user  676 Jul 14 00:17 go.sum #
-rwxrwxrwx 1 user user 1707 Jul 14 00:17 main.go #
-rwxrwxrwx 1 user user  162 Jul 14 00:17 runtime-config.json #
profile
이 블로그의 모든 글은 수제로 짜여져 있습니다...

0개의 댓글