Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在启动新的Kubernetes吊舱之前,强制关闭Kubernetes吊舱,以防中断_Kubernetes - Fatal编程技术网

在启动新的Kubernetes吊舱之前,强制关闭Kubernetes吊舱,以防中断

在启动新的Kubernetes吊舱之前,强制关闭Kubernetes吊舱,以防中断,kubernetes,Kubernetes,我正在尝试在Kubernetes中设置一个有状态的Apache Flink应用程序,我需要保存当前状态以防出现中断,例如有人删除pod或由于集群大小调整而重新调度pod 我在容器中添加了一个preStop钩子来完成这个行为,但是当我使用kubectl delete pod删除一个pod时,它会在旧的pod终止之前启动一个新的pod 指南,如使用重新创建更新策略,以确保一次只运行一个pod。这在更新部署的情况下可以很好地工作,但它不包括像我上面描述的那样的中断。我还尝试将spec.strategy

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

我在容器中添加了一个preStop钩子来完成这个行为,但是当我使用
kubectl delete pod
删除一个pod时,它会在旧的pod终止之前启动一个新的pod

指南,如使用重新创建更新策略,以确保一次只运行一个pod。这在更新部署的情况下可以很好地工作,但它不包括像我上面描述的那样的中断。我还尝试将
spec.strategy.rollingUpdate.maxsupge
设置为0,但没有任何区别


是否可以将我的部署配置为在另一个pod终止之前不会启动pod,或者我是否需要切换到Statefulset?

我同意@Cosmic Ossifrage的观点,因为这样可以轻松实现您的目标。
StatefulSets
中的每个Pod都由唯一、持久的标识和稳定的主机名表示,Kubernetes引擎维护这些标识和主机名,而不管它们被安排在何处


因此,
StatefulSet
按顺序部署,并按相反顺序终止,假设Kubernetes StatefulSet控制器在完全删除前一个Pod后每次都删除一个Pod。

我将切换到StatefulSet。您提出的用例是他们解决得很好的用例之一。@Sander,如果发生中断,您希望保存什么样的当前状态?@mk_sta Apache Flink能够创建保存点,从中可以继续,但这一过程显然应该在另一个pod启动之前完成。你们是如何在集群中的pod之间共享存储点的?它们会写入GCS,为什么?