发版日志

2.0.0 — 下一次重大版本发布

2.0.0 版本是下一次重大版本发布。本文档基线尚未确定发布日期和平台兼容性矩阵。

支持的 Valkey 版本

支持版本线已检查的 image-source patch 基线
Valkey 7.27.2.14
Valkey 8.18.1.9
Valkey 9.19.1.1

交付包中的镜像标签和 digest 仍然是准确 patch 构建的权威依据。8.0 和 9.0 的自定义资源定义(CRD)枚举值不会将这些版本线纳入 2.0.0 的支持范围。

已验证的功能范围

  • Cluster、Failover 和从节点架构;
  • 通过 Kubernetes API 进行声明式生命周期管理;
  • 原地拓扑变更和 Cluster slot 重平衡;
  • 滚动升级、基于配置的重启以及显式滚动重启;
  • 使用 Kubernetes Secret 进行访问控制列表(ACL)用户管理;
  • ClusterIP、NodePort 和 LoadBalancer 访问;
  • IPv4 和 IPv6 单栈 Service;
  • 可选的 cert-manager 签发的双向 TLS(mTLS);
  • 持久化存储和 Kubernetes 调度控制;
  • redis_exporter sidecar 指标。

API 和架构

  • 主要应用 API 为 rds.valkey.buf.red/v1alpha1,kind 为 Valkey,简称为 vk
  • spec.arch 接受 clusterfailoverreplica
  • spec.replicas.replicasOfShard 表示成员总数,而不是除 primary 之外的副本数。
  • Cluster 支持 3–128 个 shard,每个 shard 支持 1–5 个成员。
  • Failover 使用 1 个数据 shard 和至少 3 个的奇数 Sentinel 数量。
  • 可在创建时通过 spec.replicas.shardsConfig 自定义初始 Cluster slot 分布。

运维变更

  • CPU 和内存 requests 与 limits 会进行校验;相等的值可避免 admission webhook 发出的资源警告。
  • 不支持 server 降级。源码未定义或强制要求支持的从源版本到目标版本矩阵;在任何升级前,请先从发版验证中获取该矩阵。
  • 除非 spec.exporter.disable 为 true,否则默认启用 exporter。
  • 暂停/恢复和显式滚动重启通过高层资源上的 Pod annotation 驱动。
  • TLS 使用 cert-manager,并要求已有的 IssuerClusterIssuer
  • 默认 Operator 安装也使用 cert-manager 为 admission webhook 证书提供支持;外部 webhook 证书路径必须显式提供所需的证书颁发机构(CA)bundle。

凭证保护

2.0.0 基线加强了实例凭证的存储和暴露方式:

  • 访问控制列表(ACL)文件和运行中的 ACL SETUSER 更新使用 SHA-256 密码哈希,而不是明文密码;客户端仍使用其现有密码进行身份验证,无需更改。
  • 必须保持可恢复的复制和 Sentinel 凭证会写入经实例级密钥加密的渲染配置中。Operator 在专用 Secret 中管理该密钥;只有该密钥,而不是密码 Secret,会挂载到实例容器中。
  • 在交付的 server 镜像上,CONFIG GET 会将已设置的 requirepassprimaryauth 值显示为固定的脱敏占位符。
  • exporter 不再通过环境变量接收密码;它会通过 Kubernetes API 解析所引用的 Secret。
  • Sentinel 会将其重写后的配置保存在内存卷上,而不是磁盘上。
  • 生成的 Pod 和容器安全上下文在保留 spec.securityContext 中提供的值的同时,满足 Kubernetes Pod Security Admission 的 restricted profile。

操作界面

2.0.0 版本仅支持 CLI,不包含 Web Console。所有实例操作请使用 kubectlvalkey-cli

不包含的能力

不支持灾难恢复。Operator 也不实现集成备份/恢复、跨集群复制或故障切换、集成的大 key 检查报告,或参数模板。请参见 当前限制

已知兼容性边界

  • 自定义资源定义(CRD)保留了 8.09.0 枚举值,但 Operator 镜像映射不会选择这些不受支持的 server 版本线。
  • API 源和规范生成的 CRD 包含 9.1,但检查到的 Helm Chart CRD 副本已过时并省略了它。在 9.1 可被接纳之前,发版包必须安装规范 schema。
  • Cluster AntiAffinityAntiAffinityInShard 具有相同的 shard 本地选择器作用域,而 Cluster CustomAffinity 受内部常量不匹配影响。Cluster reconcile 路径在更新时也会保留现有 StatefulSet 的 affinity,因此 affinity 变更只会影响之后创建的 StatefulSet。不要依赖更宽泛的 schema 描述;请验证实际放置结果。
  • 默认生成的 TLS 需要客户端证书。其证书 subject alternative names 不覆盖任意外部地址、所有 Kubernetes DNS 后缀,或 Cluster 向客户端声明的按 Pod 划分的 Service endpoint。基础 TLS 成功并不意味着重定向后的 Cluster 连接验证通过。
  • spec.modules 不会安装模块,标准检查过的 server 镜像中也不包含任何模块文件。
  • schema 与运行时解析器对固定的 spec.access.ports 格式存在分歧。除非交付版本文档说明了经过验证的格式,否则请保持其未设置,以便自动分配 NodePort。
  • 在检查到的基线上,spec.storage.retainAfterDeleted 不生效:生成的 persistent volume claim(PVC)不会携带指向实例的 owner reference,并会在删除后保留。删除实例前请检查 PVC,并显式清理残留项。spec.storage.accessMode 也不会被应用;生成的 PVC 始终请求 ReadWriteOnce
  • 随附的 ServiceMonitor 目标是 Operator 指标,而不是 Valkey 数据平面 Service。请单独配置并验证数据平面抓取。

在采用 2.0.0 之前

发布日期和 Alauda Container Platform 兼容性矩阵仍在待定中。在上线之前,请在具有代表性的非生产集群中验证产品安装、server 升级路径、module 兼容性、外部数据保护操作步骤以及客户端行为。