我对开发环境和CI的StatefulSet更新有一个简单的问题。
我想立即替换所有StatefulSet副本,而不首先使用Kubectl删除。是否可以将清单更改为策略:替换部署中的as并继续使用kubectl apply .
发布于 2020-10-29 09:11:52
目前StatefulSets只支持两种更新策略
RollingUpdate:RollingUpdate更新策略实现StatefulSet中Pods的自动滚动更新。当.spec.updateStrategy未指定时,这是默认策略。当状态集的.spec.updateStrategy.type设置为RollingUpdate时,StatefulSet控制器将删除并重新创建StatefulSet中的每个Pod。它将按照与Pod终止(从最大序号到最小序号)相同的顺序进行,每次更新每个Pod。它将等待一个更新的Pod运行并准备好,然后再更新它的前身。OnDelete:OnDelete更新策略实现遗留(1.6及以前的)行为。当状态集的.spec.updateStrategy.type设置为OnDelete时,StatefulSet控制器将不会自动更新StatefulSet中的Pods。用户必须手动删除Pods,以使控制器创建反映状态集的.spec.template修改的新Pods。但是,有一个实现MaxUnavailable滚动更新为StatefulSet的计划。它将允许您根据maxUnavailble策略一起更新X个副本。它导致了这个更新提案,但它还没有完成,从最新的评论来看,它应该被设定为Kubernetes 1.20的一个里程碑。
https://stackoverflow.com/questions/64463797
复制相似问题