发版日志
2.0.0 — 下一次重大版本发布
2.0.0 版本是下一次重大版本发布。本文档基线尚未确定发布日期和平台兼容性矩阵。
支持的 Valkey 版本
交付包中的镜像标签和 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_exportersidecar 指标。
API 和架构
- 主要应用 API 为
rds.valkey.buf.red/v1alpha1,kind 为Valkey,简称为vk。 spec.arch接受cluster、failover和replica。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,并要求已有的
Issuer或ClusterIssuer。 - 默认 Operator 安装也使用 cert-manager 为 admission webhook 证书提供支持;外部 webhook 证书路径必须显式提供所需的证书颁发机构(CA)bundle。
凭证保护
2.0.0 基线加强了实例凭证的存储和暴露方式:
- 访问控制列表(ACL)文件和运行中的
ACL SETUSER更新使用 SHA-256 密码哈希,而不是明文密码;客户端仍使用其现有密码进行身份验证,无需更改。 - 必须保持可恢复的复制和 Sentinel 凭证会写入经实例级密钥加密的渲染配置中。Operator 在专用 Secret 中管理该密钥;只有该密钥,而不是密码 Secret,会挂载到实例容器中。
- 在交付的 server 镜像上,
CONFIG GET会将已设置的requirepass或primaryauth值显示为固定的脱敏占位符。 - exporter 不再通过环境变量接收密码;它会通过 Kubernetes API 解析所引用的 Secret。
- Sentinel 会将其重写后的配置保存在内存卷上,而不是磁盘上。
- 生成的 Pod 和容器安全上下文在保留
spec.securityContext中提供的值的同时,满足 Kubernetes Pod Security Admission 的restrictedprofile。
操作界面
2.0.0 版本仅支持 CLI,不包含 Web Console。所有实例操作请使用 kubectl 和 valkey-cli。
不包含的能力
不支持灾难恢复。Operator 也不实现集成备份/恢复、跨集群复制或故障切换、集成的大 key 检查报告,或参数模板。请参见 当前限制。
已知兼容性边界
- 自定义资源定义(CRD)保留了
8.0和9.0枚举值,但 Operator 镜像映射不会选择这些不受支持的 server 版本线。 - API 源和规范生成的 CRD 包含 9.1,但检查到的 Helm Chart CRD 副本已过时并省略了它。在 9.1 可被接纳之前,发版包必须安装规范 schema。
- Cluster
AntiAffinity与AntiAffinityInShard具有相同的 shard 本地选择器作用域,而 ClusterCustomAffinity受内部常量不匹配影响。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 兼容性、外部数据保护操作步骤以及客户端行为。