在中断情况下,强制Kubernetes Pod关闭,然后再开始新的关闭

问题描述 投票:0回答:1

我正在尝试在Kubernetes中设置一个有状态的Apache Flink应用程序,我需要在发生中断时保存当前状态,例如有人删除pod或由于群集大小调整而重新安排。

我在容器中添加了一个preStop钩子来实现这种行为,但是当我使用kubectl delete pod删除一个pod时,它会在旧的Pod终止之前旋转一个新的Pod。

this one这样的指南使用重新创建更新策略来确保一次只运行一个pod。这在更新部署的情况下工作正常,但它不包括我上面描述的中断。我也尝试将spec.strategy.rollingUpdate.maxSurge设置为0,但这没有任何区别。

是否可以配置我的部署,以便在另一个终止之前没有任何pod启动,或者我是否需要切换到StatefulSet?

kubernetes
1个回答
0
投票

我赞同@Cosmic Ossifrage,因为StatefulSets可以轻松实现您的目标。 StatefulSets中的每个Pod都具有独特的持久身份和稳定的主机名,Kubernetes Engine无论在何处安排它们都能保持这些主机名。

因此,StatefulSets按顺序部署并以反向顺序终止,假设Kubernetes StatefulSet控制器每次完全删除前一个Pod后也会删除一个Pod。

© www.soinside.com 2019 - 2024. All rights reserved.