配置 Valkey 参数
将 Valkey server 指令以字符串值的形式设置在 spec.customConfigs 中。Operator 会渲染配置,将其与上次应用的版本进行比较,并且要么对就绪节点执行 CONFIG SET,要么触发滚动重启。
更改参数之前
- 记录当前的
Valkeyspecification,以及所有可能不同的 architecture role 的有效值。 - 验证目标 Valkey 版本中是否存在该指令,并确认其接受的值类型和单位。
- 确定该更改是否会影响内存、持久化、网络、客户端超时或数据持久性。
- 一次只应用一个一致的参数更改,并等待
Ready。 - 在需要重启或影响持久化的更改之前,完成外部数据保护。
应用热配置更改
未列为禁止或需要重启的参数会尝试作为热更新来应用。如果所选 Valkey 版本不允许运行时修改,某个指令仍然可能失败。某个指令未出现在 Operator 的列表中,并不代表它与 Valkey 兼容。请检查 .status.message、Events 和 server logs。
要仅删除一个 map key,而不替换其他自定义配置,请使用带有 null 值的 JSON merge patch:
需要重启的参数
更改以下任一指令都会触发滚动重启:
tcp-backlogdatabasesrdbchecksumio-threadsio-threads-do-readsloadmodule
请评估可用性影响,并等待实例返回 Ready。
在此 baseline 中不要使用 rename-command。尽管 restart-policy map 将其标记为需要重启,但 Cluster 和 Failover 配置渲染器都会跳过该指令,因此请求的值不会写入 valkey.conf。同样,loadmodule 可能会触发重启逻辑,但由于标准已检查镜像中不包含任何 module 文件,因此无法加载任何内容。
Operator 拥有或被禁止的参数
Operator 会过滤以下指令,因为它负责 networking、TLS、process、storage paths、replication、Cluster membership 或 access control list (ACL) 配置:
请使用 spec.access、spec.storage、User 和 topology 字段,而不是直接设置这些生成的指令。
该过滤会在所有配置路径上以不区分大小写的方式匹配指令名称,包括 Sentinel,因此像 RequirePass 这样的不同大小写键也会被移除;大小写变体不是覆盖 Operator 拥有的设置的方式。仍应使用完全小写的 server 拼写来写入键:渲染后的配置和官方 Valkey 文档都使用小写指令名称。
配置 Sentinel 监控
对于 Failover 架构,支持的高级监控设置为 down-after-milliseconds、failover-timeout 和 parallel-syncs:
这些值会影响故障检测和恢复行为。请根据网络延迟、Pod 重启时间、quorum 和应用重试策略进行验证;不要仅为了让测试 failover 看起来更快而降低计时器。
放入 monitorConfig 的其他键会原样传递给 SENTINEL SET,不经过 Operator 验证。除非 release validation 已批准针对所选 server line 的额外指令,否则仅使用文档中说明的设置。
验证有效配置
选择一个就绪的数据 Pod,并查询目标键:
如果启用了 ACL authentication,请使用 --user <username> --askpass。使用 TLS 时,请从可获取已签发证书的位置运行 CLI,并添加 Access and TLS 中描述的 TLS 选项。
在交付的 server 镜像中,像 requirepass 和 primaryauth 这样的 credential 指令会在 CONFIG GET 输出中被隐藏:已设置的 credential 会显示为固定占位符,而不是其值。不要使用 CONFIG GET 读取密码;密码通过 Kubernetes Secrets 和 User resource 管理。
删除一个 map entry 会更新生成的配置,但被检查的热更新路径不会发出补偿性的 CONFIG SET 来恢复正在运行的值。删除后请查询每个受影响的节点。如果运行时值必须更改,请使用单独审查过的重启,并验证重启后的值。
指令名称、可变性和默认值会因具体 server 版本而异。请针对正在运行的版本使用 CONFIG GET 和官方 Valkey command index;Operator 的列表描述的是协调行为,而不是完整的 server 配置契约。