This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.19.3. WasmPlugin API 참조
WasmPlugins API는 Istio 프록시에서 WebAssembly 필터를 통해 제공하는 기능을 확장하는 메커니즘을 제공합니다.
여러 WasmPlugins를 배포할 수 있습니다. 단계 및 우선 순위 설정은 Envoy의 필터 체인의 일부로 실행 순서( Envoy의 필터 체인의 일부로)를 결정하여 사용자 제공wasmPlugins와 Istio의 내부 필터 간 복잡한 상호 작용을 구성할 수 있습니다.
다음 예제에서 인증 필터는 OpenID 흐름을 구현하고 Authorization 헤더를 JSON 웹 토큰(JWT)으로 채웁니다. Istio 인증은 이 토큰을 사용하고 수신 게이트웨이에 배포합니다. ExsmPlugin 파일은 프록시 사이드카 파일 시스템에 있습니다. 필드 URL을 확인합니다.
다음은 동일한 예입니다. 그러나 이번에는 파일 시스템의 파일 대신 OCI(Open Container Initiative) 이미지가 사용됩니다. URL ,imagePullPolicy , imagePullSecret 필드를 기록해 둡니다.
| 필드 | 유형 | 설명 | 필수 항목 |
|---|---|---|---|
| spec.selector | WorkloadSelector |
이 플러그인 구성을 적용해야 하는 특정 pod/VM 세트를 선택하는 데 사용되는 기준입니다. 생략하면 이 구성이 동일한 네임스페이스의 모든 워크로드 인스턴스에 적용됩니다. 구성 루트 네임스페이스에 Extras | 아니요 |
| spec.url | 문자열 |
Exsm 모듈 또는 OCI 컨테이너의 URL입니다. 스키마가 없는 경우 기본값은 | 아니요 |
| spec.sha256 | 문자열 |
wasm 모듈 또는 OCI 컨테이너를 확인하는 데 사용할 SHA256 체크섬입니다. | 아니요 |
| spec.imagePullPolicy | PullPolicy |
OCI 이미지를 가져올 때 적용할 가져오기 동작입니다. SHA 대신 태그에서 이미지를 참조하는 경우에만 관련이 있습니다. | 아니요 |
| spec.imagePullSecret | 문자열 |
OCI 이미지 가져오기에 사용할 자격 증명. 이미지를 가져올 때 레지스트리에 대한 인증을 위한 풀 시크릿이 포함된 | 아니요 |
| spec.phase | PluginPhase |
필터 체인에서 이 | 아니요 |
| spec.priority |
|
동일한 | 아니요 |
| spec.pluginName | 문자열 | Envoy 구성에 사용되는 플러그인 이름입니다. 일부 와트m 모듈에는 이 값을 실행하기 위해 이 값을 사용해야 할 수 있습니다. | 아니요 |
| spec.pluginConfig | struct | 플러그인에 전달될 구성입니다. | 아니요 |
| spec.pluginConfig.verificationKey | 문자열 | 서명된 OCI 이미지 또는wasm 모듈의 서명을 확인하는 데 사용되는 공개 키입니다. PEM 형식으로 제공해야 합니다. | 아니요 |
WorkloadSelector 개체는 필터를 프록시에 적용할 수 있는지 확인하는 데 사용되는 기준을 지정합니다. 일치하는 기준에는 프록시와 연결된 메타데이터, pod/VM에 연결된 라벨과 같은 워크로드 인스턴스 정보 또는 초기 핸드셰이크 중 Istio에 제공하는 기타 정보가 포함됩니다. 여러 조건이 지정된 경우 워크로드 인스턴스를 선택하기 위해 모든 조건을 일치해야 합니다. 현재는 라벨 기반 선택 메커니즘만 지원됩니다.
| 필드 | 유형 | 설명 | 필수 항목 |
|---|---|---|---|
| matchLabels | map<string, string> | 정책을 적용해야 하는 특정 Pod/VM 세트를 나타내는 하나 이상의 레이블입니다. 레이블 검색 범위는 리소스가 있는 구성 네임스페이스로 제한됩니다. | 있음 |
PullPolicy 오브젝트는 OCI 이미지를 가져올 때 적용할 풀 동작을 지정합니다.
| 값 | 설명 |
|---|---|
| <empty> |
기본값은 latest 태그가 있는 OCI 이미지를 제외하고 |
| IfNotPresent | 기존 버전의 이미지를 이전에 가져온 경우 이 버전이 사용됩니다. 이미지가 로컬에 없는 경우 최신 버전을 가져옵니다. |
| Always | 이 플러그인을 적용할 때 항상 최신 버전의 이미지를 가져옵니다. |
구조체 는 동적으로 입력된 값에 매핑되는 필드로 구성된 구조화된 데이터 값을 나타냅니다.Represents a structured data value, consisting of fields which map to dynamically typed values. 일부 언어에서는 Struct가 네이티브 표현에 의해 지원될 수 있습니다. 예를 들어 JavaScript와 같은 스크립팅 언어에서 구조체는 개체로 표시됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
| 필드 | map<string, Value> | 동적으로 입력된 값의 맵입니다. |
PluginPhase 는 플러그인이 삽입될 필터 체인의 단계를 지정합니다.
| 필드 | 설명 |
|---|---|
| <empty> | 컨트롤 플레인은 플러그인을 삽입할 위치를 결정합니다. 이는 일반적으로 라우터 바로 앞에 필터 체인의 끝에 있습니다. 플러그인이 다른 플러그인과 독립적인 경우 PluginPhase를 지정하지 마십시오. |
| AUTHN | Istio 인증 필터 전에 플러그인을 삽입합니다. |
| AUTHZ | Istio 권한 부여 필터 및 Istio 인증 필터 후에 플러그인을 삽입합니다. |
| STATS | Istio 통계 필터 및 Istio 권한 부여 필터 후에 플러그인을 삽입합니다. |
1.19.3.1. 월 mPlugin 리소스 배포 링크 복사링크가 클립보드에 복사되었습니다!
wasmPlugin 리소스를 사용하여 Red Hat OpenShift Service Mesh 확장을 활성화할 수 있습니다. 이 예제에서 istio-system 은 Service Mesh Control Plane 프로젝트의 이름입니다. 다음 예제에서는 사용자를 인증하기 위해 OpenID Connect 흐름을 수행하는 openid-connect 필터를 생성합니다.
절차
다음 예제 리소스를 만듭니다.
plugin.yaml 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여
plugin.yaml파일을 적용합니다.oc apply -f plugin.yaml
$ oc apply -f plugin.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow