1.20.4. 配置 threescale-wasm-auth 模块

OpenShift Container Platform 上的集群管理员可以配置 threescale-wasm-auth 模块,通过应用程序二进制接口(ABI)授权 HTTP 请求进行 3scale API 管理。ABI 定义主机和模块之间的交互,公开主机服务,并允许您使用模块来处理代理请求。

1.20.4.1. Service Mesh 扩展

Service Mesh 提供了一个 自定义资源定义,用于为 sidecar 代理(称为 ServiceMeshExtension )指定并应用 Proxy-WASM 扩展。Service Mesh 将此自定义资源应用到需要使用 3scale 管理 HTTP API 的工作负载集合。

注意

配置 WebAssembly 扩展目前是一个手动过程。以后的发行版本中将提供对 3scale 系统获取服务配置的支持。

先决条件

  • 识别要应用此模块的 Service Mesh 部署上的 Kubernetes 工作负载和命名空间。
  • 您必须有一个 3scale 租户帐户。请参阅 SaaS3scale 2.11 On-Premises,其中定义了匹配的服务和相关应用程序和指标。
  • 如果您将该模块应用到 bookinfo 命名空间中的 productpage 微服务,请参阅 Bookinfo 示例应用程序

    • 以下示例是 threescale-wasm-auth 模块的自定义资源的 YAML 格式。这个示例指的是 Service Mesh 的上游 Maistra 版本 ServiceMeshExtension API。您必须声明部署 3scale-wasm-auth 模块的命名空间,以及一个 WorkloadSelector,以标识该模块将应用到的应用程序集:

      apiVersion: maistra.io/v1
      kind: ServiceMeshExtension
      metadata:
        name: threescale-wasm-auth
        namespace: bookinfo 1
      spec:
        workloadSelector: 2
          labels:
            app: productpage
        config: <yaml_configuration>
        image: registry.redhat.io/openshift-service-mesh/3scale-auth-wasm-rhel8:0.0.1
        phase: PostAuthZ
        priority: 100
      1
      namespace
      2
      WorkloadSelector
  • spec.config 字段取决于模块配置,并且没有填充到上例中。这个示例使用 <yaml_configuration> 占位符值。您可以使用此自定义资源示例的格式。

    • spec.config 字段因应用程序而异。所有其他字段在该自定义资源的多个实例之间都存在。例如:

      • Image:仅在部署较新版本的模块时更改。
      • phase :保留相同的模块,因为此模块需要在代理完成任何本地授权后调用,如验证 OpenID Connect(OIDC)令牌。
  • spec.config 和其余自定义资源中配置了模块后,使用 oc apply 命令应用它:

    $ oc apply -f threescale-wasm-auth-bookinfo.yaml