发版日志

v4.4.0

新增和优化功能

  • 新的产品名称。该插件现列为 Alauda Data Services Analytical Database E1。此更改仅涉及显示名称:软件包名称、自定义资源类型和 API 组,以及现有实例均未更改。
  • ClickHouse® 引擎 25.8.33.6。默认服务器镜像从 25.8.16.34 更新为 25.8.33.6,这是同一 25.8 LTS 系列中的补丁版本。新实例默认使用该版本;现有实例将继续使用其指定的镜像,直到您按照升级中的说明进行更改。
  • 重新构建的镜像。operator 和 metrics exporter 使用更新的 Go 工具链在更新后的 Alpine 基础镜像上编译,busybox helper 镜像则固定为特定标签,而不是使用浮动标签。ClickHouse 服务器镜像包含其基础镜像截至 2.31-0ubuntu9.18 发布的 GNU C Library 安全更新,并同时支持 amd64 和 arm64。
  • 镜像来源。operator、metrics exporter 和 bundle 镜像包含 org.opencontainers.image.sourceorg.opencontainers.image.revisionorg.opencontainers.image.ref.name 标签,用于标识其构建来源。
  • 感知内存的 operator 运行时。operator 和 metrics exporter 根据其容器的内存限制设置 Go 运行时的软内存限制,从而降低大型安装中 operator 因 OOM 被终止的风险。
  • 许可证声明。从上游项目修改的文件包含修改声明,并且 operator、metrics exporter 和服务器镜像中均包含许可证文本。

行为变更

  • 实例状态现在反映 Pod 就绪状态。仅当每个主机的 StatefulSet 均报告其所需副本已就绪时,实例才会标记为 Completed;如果某个主机之后失去就绪状态,实例会返回 InProgress。Pod 再次就绪后,实例会自动恢复为 Completed;无需更改实例即可清除该状态。升级后,Pod 不健康的实例会报告 InProgress,而早期版本会报告 Completed。请参阅Pod 不健康时实例报告已完成
  • operator 要求配置服务器镜像。如果未配置服务器镜像,operator 不再回退到内置的服务器镜像引用,而是在启动时报告配置错误。通过插件软件包安装时始终会配置镜像,因此不受影响。

升级说明

  • 升级 operator 会重启 ClickHouse Pod。新的 operator 更改了默认服务器镜像和共享 logger 配置,因此未指定自有服务器镜像的每个实例都会执行滚动重启,每次重启一个副本。单副本实例在其 Pod 重启期间不可用。如果运行单副本实例,请将 operator 升级安排在维护时段内。

已修复问题

  • ClickHouse 无法以非 root 用户启动。默认 logger 配置将错误日志指向 /dev/null。服务器根据该路径推导其日志目录,并尝试管理 /dev;没有 root 权限时此操作会失败,因此以非 root 用户运行 Pod 的实例(包括位于强制执行 Pod Security Admission restricted 配置文件的命名空间中的任何实例)始终无法启动。现在,错误日志会写入 /var/log/clickhouse-server/clickhouse-server.err.log
  • Pod 失败时实例报告 Completed。所有对象提交后 reconcile pass 即被标记为完成,而无需等待 Pod 就绪;当 Pod 后续失败时,已达到 Completed 的状态也不会更新。这两种情况均已修复;请参阅上面的“行为变更”。

已知问题

  • 设置 logVolumeClaimTemplate 的实例在 Pod Security Admission restricted 配置文件下会被拒绝,除非您自行定义日志容器。operator 会添加一个 clickhouse-log 容器,其安全上下文仅设置用户 ID。请在 Pod 模板中定义名为 clickhouse-log 且具有合规安全上下文的容器。请参阅Pod 被 Pod Security Admission 拒绝
  • 内存限制低于 2 GiB 的实例可能拒绝小型查询。ClickHouse 将自身内存使用量限制为容器内存限制的 90%,而空闲服务器的常驻内存可能接近 1 GiB。在 1 GiB 限制下,服务器空闲时可能超过其上限,即使是最简单的查询也会因 Code: 241 … (total) memory limit exceeded 失败。请将 clickhouse 容器的 resources.limits.memory 设置为至少 2Gi。如果不设置限制,容器会继承命名空间 LimitRange 的默认内存限制,而该限制可能低于 2 GiB。早期版本也受此影响。
  • 在 operator 升级更新实例期间删除实例所需时间会比平时更长。将 operator 升级到此版本后,未设置服务器镜像的实例会逐个主机更新为新的服务器镜像。如果在此更新期间删除此类实例,删除操作会在所有主机完成更新后才开始,每个主机可能需要数分钟。之后删除操作会完成。

ClickHouse 是 ClickHouse, Inc. 的注册商标。https://clickhouse.com

Alauda 是独立供应商。本产品与 ClickHouse, Inc. 无关联,也未获得其认可或赞助。所有商标均为其各自所有者的财产,此处仅用于识别目的。