首页/开发/CI/CD 与发布速查/StatefulSet 滚动更新与 partition
发布策略60 条

StatefulSet 滚动更新与 partition

有状态工作负载按序号从大到小逐个更新;partition 字段只更新序号不小于该值的 Pod,用它实现有状态服务的单实例先行验证与分批放量。

CI/CD 与发布速查开发更新于 2026-10-12
更新顺序从高序号向低序号逐个替换
partition仅更新序号 >= partition 的 Pod
就绪约束默认 OrderedReady:每个 Pod 就绪后才继续
回滚镜像改回旧版本触发反向滚动

先更新一个实例

先更新一个实例
kubectl patch statefulset web -p '{"spec":{"updateStrategy":{"type":"RollingUpdate","rollingUpdate":{"partition":3}}}}'
kubectl rollout status statefulset/web
# 验证通过后逐步下调 partition(3 → 2 → 1 → 0)
partition=副本数-1 时只动末位 Pod:观察主从同步与业务指标后再继续放量。

易错点

  • partition 直接调 0:全部实例同时进入更新流程,模板问题会波及整组
  • 依赖有序启动的集群(主从/分片)打断 OrderedReady 假设:乱序替换破坏一致性

数据来源与参考

  • Kubernetes 文档《StatefulSets》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌