You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

StatefulSet的minReadySeconds与Parallel模式podManagementPolicy是否兼容?

StatefulSet的minReadySeconds与Parallel模式podManagementPolicy是否兼容?

您好,这个现象确实是正常且符合Kubernetes设计预期的,下面给您详细解释下:

核心原因

当StatefulSet设置podManagementPolicy: Parallel时,控制器会同时启动或更新所有Pod,不会像默认的OrderedReady模式那样,严格按照Pod序号顺序,等待前一个Pod进入Ready状态并度过minReadySeconds后再处理下一个Pod。

而minReadySeconds在Parallel模式下的作用逻辑是:它会作为整个StatefulSet更新完成的判断条件之一——只有当所有更新后的Pod都处于Ready状态,并且每个Pod都已经维持Ready状态满minReadySeconds时长,整个StatefulSet的更新流程才会被标记为完成。但在更新过程中,控制器不会因为这个参数而暂停批量创建/更新Pod的动作,这就是您测试时觉得它“没生效”的原因。

结合您的配置示例

您提供的StatefulSet配置修正缩进后如下:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx # has to match .spec.template.metadata.labels
  serviceName: "nginx"
  replicas: 2 # by default is 1
  minReadySeconds: 30 # by default is 0
  podManagementPolicy: Parallel
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

(注:补充了template下的metadata和containers部分,否则配置不完整)

在这个配置下,执行滚动更新时,K8s会同时更新两个Pod,不会等待第一个Pod就绪并度过30秒再更新第二个;但只有当两个Pod都就绪且各自维持就绪状态满30秒后,整个StatefulSet的更新才会彻底完成。

针对K8s 1.24版本的说明

这个行为在K8s 1.24版本中是完全符合官方设计的,不存在版本兼容性问题,您观察到的现象就是该模式下的正常表现。

备注:内容来源于stack exchange,提问作者leonard520

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:15:34