我正在设置一个具有大量长计算jobs的kubernetes集群,所有这些都是单个副本。过程通常会崩溃,因为1)容器已崩溃,或2)节点由于某些硬件故障而失败。我希望能够从这些崩溃中恢复,因为它们通常需要数周才能完成。
我可以使用emptyDir
轻松地从类型1的故障中恢复,并将中间检查点写入/emptydir/checkpoint.txt
,这是每个Pod的本地检查点。但是,我不清楚如何从节点故障中恢复。
我有一个可由所有节点访问的集中式NFS;但是,为每个作业提供一个独特的NFS路径是很痛苦的(我有很多)。我想也许每个Pod都应该将检查点写入NFS上的某个随机路径,并以某种方式将此随机路径传递给Pod故障时的下一个Pod。有没有什么方法可以让Pod在失败时通信任何事情?这是要走的路吗?
请保持简单,我对kubernetes很新。
谢谢!