滚动重启

spec.podAnnotations["kubectl.kubernetes.io/restartedAt"] 中设置一个新的 Request for Comments (RFC) 3339 时间戳,以触发工作负载模板更新和滚动 Pod 替换。该值必须能够解析为时间戳,并且晚于之前记录的值;重复使用或减小该值不会请求新的重启。

重启前

  • 确认 Valkey 阶段为 Ready
  • 确认每个生产 Cluster 分片都有一个从节点,或者 Failover 实例具有健康的从节点和 Sentinel quorum。
  • 停止并发的扩缩容、升级、存储、访问和配置更改。
  • 验证外部数据保护和当前 persistent volume claim (PVC) 的健康状态。

触发重启

RESTARTED_AT="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
kubectl -n default patch valkey valkey-cluster --type=merge \
  -p "{\"spec\":{\"podAnnotations\":{\"kubectl.kubernetes.io/restartedAt\":\"${RESTARTED_AT}\"}}}"

观察进度:

kubectl -n default get valkey valkey-cluster -w
kubectl -n default get pods -l buf.red/name=valkey-cluster -w
kubectl -n default get events --sort-by=.lastTimestamp

不要仅凭 Pod 时间戳就断言成功。在阶段返回到 Ready 后,请验证连通性、访问控制列表 (ACL) 身份验证、Cluster 分片覆盖范围或 Failover 主节点、复制健康状况以及 exporter 指标。

Operator 使用滚动的工作负载更新,但可用性仍然取决于拓扑、客户端重试行为、Pod 驱逐、调度容量以及从节点的健康状况。此操作步骤不能保证零停机。