Kubernetes StatefulSet的策略替换

Kubernetes StatefulSet的策略替换,kubernetes,statefulset,Kubernetes,Statefulset,我对我的开发环境和CI上的StatefulSet更新有一个简单的问题 我想立即替换所有StatefulSet副本,而不首先使用Kubectl delete。 是否可以将清单更改为策略:在部署中替换,并继续使用kubectl apply…目前仅支持两种: RollingUpdate:RollingUpdate更新策略为状态集中的POD实现自动滚动更新。未指定.spec.updateStregy时,这是默认策略。当StatefulSet的.spec.updateStregy.type设置为Roll

我对我的开发环境和CI上的StatefulSet更新有一个简单的问题

我想立即替换所有StatefulSet副本,而不首先使用Kubectl delete。 是否可以将清单更改为策略:在部署中替换,并继续使用kubectl apply…

目前仅支持两种:

  • RollingUpdate
    RollingUpdate
    更新策略为状态集中的POD实现自动滚动更新。未指定
    .spec.updateStregy
    时,这是默认策略。当StatefulSet的
    .spec.updateStregy.type
    设置为
    RollingUpdate
    时,StatefulSet控制器将删除并重新创建StatefulSet中的每个Pod。它将按照与Pod终止相同的顺序进行(从最大序号到最小序号),一次更新一个Pod。它将等待更新的Pod运行并准备就绪,然后再更新其前一个Pod

  • OnDelete
    :更新策略实现了遗留(1.6及以前版本)行为。当StatefulSet的
    .spec.updateStregy.type
    设置为
    OnDelete
    时,StatefulSet控制器不会自动更新StatefulSet中的POD。用户必须手动删除POD,以使控制器创建新的POD,以反映对状态集的
    .spec.template
    所做的修改

然而,有一项计划要实施一项新的战略。它允许您根据
maxunavailable
策略一起更新X个副本。它导致了这一点,但还没有完成,从最新的评论来看,它应该被设置为Kubernetes 1.20的里程碑。

目前只支持两种:

  • RollingUpdate
    RollingUpdate
    更新策略为状态集中的POD实现自动滚动更新。未指定
    .spec.updateStregy
    时,这是默认策略。当StatefulSet的
    .spec.updateStregy.type
    设置为
    RollingUpdate
    时,StatefulSet控制器将删除并重新创建StatefulSet中的每个Pod。它将按照与Pod终止相同的顺序进行(从最大序号到最小序号),一次更新一个Pod。它将等待更新的Pod运行并准备就绪,然后再更新其前一个Pod

  • OnDelete
    :更新策略实现了遗留(1.6及以前版本)行为。当StatefulSet的
    .spec.updateStregy.type
    设置为
    OnDelete
    时,StatefulSet控制器不会自动更新StatefulSet中的POD。用户必须手动删除POD,以使控制器创建新的POD,以反映对状态集的
    .spec.template
    所做的修改


然而,有一项计划要实施一项新的战略。它允许您根据
maxunavailable
策略一起更新X个副本。它导致了这一点,但还没有完成,从最新的评论来看,它应该被设置为Kubernetes 1.20的里程碑。

您指的是更新策略吗?您指的是更新策略吗?@user3077014是否回答了您的问题?@user3077014是否回答了您的问题?