1.19. 확장
WebAssembly 확장을 사용하여 Red Hat OpenShift Service Mesh 프록시에 새 기능을 직접 추가할 수 있습니다. 이를 통해 애플리케이션에서 더 일반적인 기능을 이동하고 WebAssembly 바이트 코드로 컴파일하는 단일 언어로 구현할 수 있습니다.
WebAssembly 확장은 IBM Z 및 IBM Power Systems에서 지원되지 않습니다.
1.19.1. WebAssembly 모듈 개요
WebAssembly 모듈은 프록시를 포함한 여러 플랫폼에서 실행될 수 있으며 광범위한 언어 지원, 빠른 실행 및 샌드박스 기반 보안 모델을 제공합니다.
Red Hat OpenShift Service Mesh 확장은 Envoy HTTP 필터이며 다양한 기능을 제공합니다.
- 요청 및 응답의 본문과 헤더를 조작합니다.
- 인증 또는 정책 검사와 같이 요청 경로에 없는 서비스에 대한 대역 외 HTTP 요청
- 필터가 서로 통신할 수 있는 사이드 채널 데이터 스토리지 및 큐입니다.
새로운 WebAssembly 확장을 생성할 때wasmPlugin API를 사용하십시오. ServiceMeshExtension API는 Red Hat OpenShift Service Mesh 버전 2.2에서 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
Red Hat OpenShift Service Mesh 확장을 작성하는 데는 다음 두 가지가 있습니다.
- proxy-wasm API 를 노출하는 SDK를 사용하여 확장 기능을 작성하고 WebAssembly 모듈로 컴파일해야 합니다.
- 그런 다음 모듈을 컨테이너로 패키징해야 합니다.
지원되는 언어
WebAssembly 바이트 코드에 컴파일된 모든 언어를 사용하여 Red Hat OpenShift Service Mesh 확장을 작성할 수 있지만, 다음 언어에는 proxy-wasm API를 공개하는 기존 SDK가 있어 직접 사용할 수 있습니다.
언어 | 유지 관리자 | 리포지터리 |
---|---|---|
AssemblyScript | solo.io | |
C++ | proxy-wasm 팀(Istio 커뮤니티) | |
Go | tetrate.io | |
Rust | proxy-wasm 팀(Istio 커뮤니티) |