1.19.5. ServiceMeshExtension 참조
ServiceMeshExtension API는 WebAssembly 필터를 통해 Istio 프록시에서 제공하는 기능을 확장하는 메커니즘을 제공합니다. WebAssembly 확장을 작성하는 데는 두 가지 부분이 있습니다.
- proxy-wasm API를 노출하는 SDK를 사용하여 확장 기능을 작성하고 WebAssembly 모듈로 컴파일합니다.
- 컨테이너에 패키징합니다.
새로운 WebAssembly 확장을 생성할 때 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 프로젝트의 이름입니다.
새로운 WebAssembly 확장을 생성할 때 WasmPlugin을 사용합니다. ServiceMeshExtension는 Red Hat OpenShift Service Mesh 버전 2.2에서 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
Rust SDK를 사용하여 빌드된 전체 예제는 header-append-filter를 참조하십시오. 하나 이상의 헤더를 HTTP 응답에 추가하는 단순 필터로, 확장 프로그램의 config
필드에서 가져온 이름과 값을 사용합니다. 아래 코드 조각에서 샘플 구성을 참조하십시오.
절차
다음 예제 리소스를 만듭니다.
ServiceMeshExtension 리소스 extensions.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
다음 명령을 사용하여
extensions.yaml
파일을 적용합니다.$ oc apply -f <extension>.yaml