发版日志

v3.0.0-acp.3

支持 Alauda Container Platform 4.1、4.2、4.3 和 4.4,支持 amd64 和 arm64 节点,支持 IPv4、IPv6 和双栈集群。

组件版本镜像标签
OperatorOpenSearch Kubernetes Operator 3.0(上游 v3.0.0)opensearch-operator:v3.0.0-acp.3
OpenSearch 引擎3.8.0(默认)opensearch:3.8.0-alauda.1.g25fad300
OpenSearch 引擎2.19.6opensearch:2.19.6-alauda.1.g25fad300
OpenSearch Dashboards3.8.0opensearch-dashboards:3.8.0-alauda.1.g25fad300
OpenSearch Dashboards2.19.6opensearch-dashboards:2.19.6-alauda.1.g25fad300
Init helperBusyBox 1.38.0busybox:1.38.0-alauda.1.g25fad300

新增和优化功能

  • OLM operator 软件包。 产品以 OLM 软件包 opensearch-operator 的形式交付,显示名称为 Alauda Data Services Search Engine E1,channel 为 stable,并从 OperatorHub 安装。请参阅安装。
  • 新的 API group opensearch.org/v1。 Operator 基于上游 OpenSearch Kubernetes Operator 3.0,该 Operator 在 opensearch.org/v1 API group 中管理资源,而不是在 opensearch.opster.io/v1 中管理。
  • 支持从 operator 2.8.0 原位升级。 现有的 opensearch.opster.io/v1 资源会自动迁移到 opensearch.org/v1,旧 API group 将变为只读。每个节点池都会重启一次。当您将 2.8.0 Subscription 从 alpha channel 切换到 stable 时,升级将开始;请先完成升级前准备。平台日志存储继续在 alpha 上使用 operator 2.8.0;请勿切换它。请参阅升级。
  • 默认使用 Restricted Pod Security。 Operator 创建的 pod 会获得与 Kubernetes restricted Pod Security 级别兼容的安全上下文,除非自定义资源设置了这些字段。请参阅所创建 pod 的 Pod Security。
  • 没有特权 init 容器。 vm.max_map_count 现在是节点前置条件,而不是特权 init 容器;数据卷通过 pod fsGroup 变为可写,而不是通过 root init 容器。请参阅在节点上设置 vm.max_map_count。
  • 使用平台 registry 中的镜像。 Operator 从 spec.general.version 中选择本版本提供的引擎、Dashboards 和 init helper 镜像,因此这些镜像遵循平台的镜像 registry,包括在断开连接的环境中。
  • 重新构建引擎镜像。 OpenSearch 和 OpenSearch Dashboards 镜像由 Alauda 基于上游镜像重新构建,并更新操作系统软件包,将存在漏洞的库替换为已修复的版本。这些镜像不包含 Security Analytics 和 Skills 插件。请参阅未包含的插件。

已修复问题

  • 未配置 TLS 的集群使用了演示安全配置启动。 未配置 TLS 的集群现在会在禁用 security plugin 的情况下运行,而不是使用镜像的演示安全配置启动。请参阅创建集群。
  • bootstrap pod 的 PVC 没有 StorageClass。 在没有默认 StorageClass 的平台集群上,该 PVC 永远不会完成绑定,集群也无法形成。如果未设置 spec.bootstrap.storageClass,bootstrap PVC 现在会使用 cluster-manager 节点池的存储类。请参阅存储。
  • 在新集群上,Dashboards 可能会无限等待首次索引迁移。 当 bootstrap pod 被移除,或 startup probe 在迁移完成前重启 Dashboards 时,迁移会被中断。现在,Dashboards 只会在集群形成且 bootstrap pod 被移除后启动,其 startup probe 会为 saved-objects 迁移提供 30 分钟时间。请参阅Dashboards 等待其他迁移。
  • OpenSearch Dashboards 在仅 IPv6 集群上始终无法就绪。 它仅监听 IPv4,因此 startup probe 会失败。对于主 IP family 为 IPv6 的集群,Dashboards 现在会监听 IPv6。在 spec.dashboards.env 中设置的 SERVER_HOST 仍具有优先级。
  • Operator Deployment 重命名为 opensearch-operator-manager。 这使得从 operator 2.8.0 原位升级成为可能,因为 Deployment selector 无法原位更改。请更新任何通过名称引用 operator Deployment 的监控或自动化配置。

安全修复

发布时,所有镜像中能够通过直接替换修复的漏洞均已修复。以下问题尚未在本版本中修复,计划在后续补丁版本中修复:

  • OpenSearch Dashboards。 需要进行 major version 升级的 npm 依赖,或上游尚无修复的依赖,包括 CVE-2026-85061(严重,maplibre-gl;请参阅缓解 CVE-2026-85061)。OpenSearch Dashboards 2.19.6 运行在 Node.js 18 上,而该版本已在上游停止支持,并存在只能在更新的 Node.js 版本中修复的已知漏洞。其中还包含受 CVE-2024-3566 影响的 Node.js 14 fallback runtime(严重,仅限 Windows)。
  • OpenSearch engine 3.8.0。 security 和 notifications 插件的 jar 中内置的 Jackson 和 Apache HttpComponents 版本。
  • BusyBox 1.38.0。 CVE-2025-60876、CVE-2026-38753、CVE-2026-38754 和 CVE-2026-38755,这些问题目前尚无上游修复。
  • Operator。 golang.org/x/crypto/openpgp 中的 GO-2026-5932,目前没有包含修复的版本。

已知问题

  • 必须在节点上设置 vm.max_map_count。 spec.general.setVMMaxMapCount 不会产生任何效果。
  • 请勿设置镜像覆盖项。 如果在 OpenSearchCluster 中设置了 spec.general.defaultRepo 或镜像,pod 可能无法拉取其镜像。请参阅集群规格中的镜像设置。
  • 资源更改会一次滚动一个 pod,每个 pod 约需 3 到 4 分钟。请参阅已知限制。
  • 不会自动回滚到 operator 2.8.0。请参阅升级。
  • Dashboards Maps 插件中的 CVE-2026-85061 尚未修复。 请参阅缓解 CVE-2026-85061。

缓解 CVE-2026-85061

CVE-2026-85061(严重)是 maplibre-gl 中的跨站脚本漏洞,OpenSearch Dashboards 3.8.0 和 2.19.6 的 Maps 插件(customImportMapDashboards)使用该库来绘制地图。地图 attribution 文本中的 HTML 在经过清理后仍可能保留事件处理程序属性,例如 onload 或 ontoggle。当用户打开显示此 attribution 的地图时,该处理程序会在用户的浏览器中运行。要利用此漏洞,攻击者必须能够控制地图的 attribution:已保存地图中自定义图层的 attribution,或来自外部 tile service 的地图样式中的 attribution。

以下措施已在 E1 3.0 上使用两个 Dashboards 版本完成验证。

1. 保留默认 Content Security Policy。 Dashboards 会在其页面(包括 Maps 应用)上发送强制执行的 Content-Security-Policy header。该 header 不允许脚本使用 'unsafe-inline',因此浏览器不会运行内联事件处理程序:

Dashboards默认 header 中的脚本指令
3.8.0script-src 'self'; script-src-attr 'none'
2.19.6script-src 'unsafe-eval' 'self'

在 E1 Dashboards 上的浏览器测试中,作为 HTML 插入页面的 ontoggle、onload 和 onerror 处理程序均未运行:浏览器将每个处理程序都拦截为 script-src-attr 违规。在没有此 header 的页面上,相同的标记可以运行。因此:

  • 请勿将 'unsafe-inline' 添加到脚本指令中,例如通过 spec.dashboards.additionalConfig 中的 csp.rules 添加。
  • 请勿在 Dashboards 前面的 reverse proxy 或 Ingress 中移除或替换该 header。
  • 请使用当前版本的浏览器。不执行 Content Security Policy 的浏览器无法通过此措施获得保护。

2. 限制可以创建或更改地图的用户。 地图(包括其自定义图层的 attribution)是 Dashboards 索引中的 saved objects。内置的 kibana_user 角色和 all_access 可以创建和更改这些对象。对于只需查看 dashboards 和地图的地图用户,请改为分配只读角色,同时不要再将他们映射到 kibana_user;角色权限会叠加。例如,使用 security plugin REST API:

curl -k -u admin:<admin-password> -X PUT \
  "https://<cluster-service>:9200/_plugins/_security/api/roles/dashboards_read_only" \
  -H 'Content-Type: application/json' -d '{
    "cluster_permissions": ["cluster_composite_ops_ro"],
    "index_permissions": [{
      "index_patterns": [".kibana", ".kibana_*", ".opensearch_dashboards", ".opensearch_dashboards_*"],
      "allowed_actions": ["read"]
    }],
    "tenant_permissions": [{
      "tenant_patterns": ["global_tenant"],
      "allowed_actions": ["kibana_all_read"]
    }]
  }'

curl -k -u admin:<admin-password> -X PUT \
  "https://<cluster-service>:9200/_plugins/_security/api/rolesmapping/dashboards_read_only" \
  -H 'Content-Type: application/json' -d '{"users": ["<user>"]}'

仅拥有此角色的用户可以登录 Dashboards 并打开现有地图。创建、更改或导入地图时会返回 no permissions for [indices:data/write/...] 错误。仅向受信任的用户授予 kibana_user 和 all_access。

此措施需要 security plugin。未配置 TLS 的集群会在禁用 security plugin 的情况下运行(请参阅创建集群),因此任何能够访问其 Dashboards 的人都可以创建地图。对于此类集群,请依靠措施 1,并限制对 Dashboards 的网络访问。

无法缓解该漏洞的措施:

  • 无法通过配置禁用 Maps 插件。在 spec.dashboards.additionalConfig 中设置 custom_import_map_dashboards.enabled: "false" 会导致 Dashboards 无法启动,并出现 ValidationError: [config validation of [custom_import_map_dashboards].enabled]: definition for this key is missing。请勿设置该项。
  • map.includeOpenSearchMapsService: "false" 可被接受,但 Maps 插件不会使用此设置,因此它不会改变 Maps 应用加载的内容。

完整列表请参阅已知限制。


OpenSearch® 是 LF Projects, LLC 的注册商标。