Link Search Menu Expand Document Documentation Menu

插件即服务

2.19 版本引入

为扩展核心功能,OpenSearch 使用了插件,这些插件有以下几点限制:

  • 它们与集群在同一个 JVM 中运行,共享存储、内存和状态。
  • 它们需要严格的版本兼容性。
  • 它们被限制在单个租户中。

为解决这些挑战,您可以使用*远程元数据 SDK 客户端*,该客户端通过外部数据存储(如远程 OpenSearch 集群或云存储服务)实现无状态 OpenSearch 插件。使用该客户端可以提高可伸缩性,使插件更适应大型工作负载。有关该客户端的更多信息,请参阅 SDK 客户端仓库

远程元数据存储

远程元数据存储允许 OpenSearch 插件通过使用外部存储解决方案,以无状态方式运行,而不依赖于本地 JVM 或集群资源。插件可以将元数据存储在远程位置,例如其他 OpenSearch 集群或云存储服务,而不是将其存储在 OpenSearch 集群中。这种方法提高了可伸缩性,减少了资源争用,并使插件能够独立于核心 OpenSearch 集群运行。

远程元数据存储提供以下优势:

  • 可伸缩性:将元数据存储卸载到外部系统可减少 OpenSearch 集群的内存和 CPU 使用率。
  • 多租户支持:基于租户的存储分离使云提供商能够提供更灵活的插件解决方案,使用租户 ID 逻辑分离资源。

支持的存储后端

远程元数据存储可配置为使用以下外部后端:

  • 远程 OpenSearch 集群
  • Amazon DynamoDB

启用多租户

要启用插件中的多租户,请更新以下静态设置。更新后,重启集群以使更改生效。有关更新设置的更多信息,请参阅 配置 OpenSearch

多租户设置

下表列出了多租户设置。

设置 数据类型 描述
multi_tenancy_enabled 布尔型 为插件启用多租户。

远程元数据存储设置

下表列出了与远程元数据存储配置相关的设置。

设置 数据类型 描述
remote_metadata_type 字符串 远程元数据存储类型。有效值为
- RemoteOpenSearch:与 OpenSearch Java 客户端兼容的远程 OpenSearch 集群。
- AWSDynamoDB:Amazon DynamoDB,具有到 OpenSearch 的零 ETL 复制。
- AWSOpenSearchService:使用 AWS SDK v2 的 Amazon OpenSearch Service。
remote_metadata_endpoint 字符串 远程元数据端点 URL。
remote_metadata_region 字符串 存储元数据的 AWS 区域。
remote_metadata_service_name 字符串 远程元数据服务名称。

示例

以下配置通过远程 OpenSearch 集群启用多租户:

plugins.<plugin_name>.multi_tenancy_enabled: true
plugins.<plugin_name>.remote_metadata_type: "opensearch"
plugins.<plugin_name>.remote_metadata_endpoint: "https://remote-store.example.com"
plugins.<plugin_name>.remote_metadata_region: "us-west-2"
plugins.<plugin_name>.remote_metadata_service_name: "remote-store-service"

支持的插件

OpenSearch 支持以下插件的多租户。

ML Commons

ML Commons 插件支持以下组件的多租户:

以下示例为 ML Commons 插件配置多租户:

plugins.ml_commons.multi_tenancy_enabled: true
plugins.ml_commons.remote_metadata_type: AWSDynamoDB
plugins.ml_commons.remote_metadata_endpoint: <REMOTE_ENDPOINT>
plugins.ml_commons.remote_metadata_region: <AWS_REGION>
plugins.ml_commons.remote_metadata_service_name: <SERVICE_NAME>

Flow Framework

以下示例为 Flow Framework 插件配置多租户:

plugins.flow_framework.multi_tenancy_enabled: true
plugins.flow_framework.remote_metadata_type: AWSDynamoDB
plugins.flow_framework.remote_metadata_endpoint: <REMOTE_ENDPOINT>
plugins.flow_framework.remote_metadata_region: <AWS_REGION>
plugins.flow_framework.remote_metadata_service_name: <SERVICE_NAME>

剩余 350 字符

有问题?

想贡献?