是否有可能让Kubernetes在节点启动后在其上运行作业,并且在该作业完成之前不要运行任何Pods?
我的第一个想法是使用污点(开始节点有一个只有作业能容忍的污点,然后在作业完成后清除污点)。但是,我使用的是AWS,如果可能的话,我希望使用“托管节点”特性,使用哪个不允许来指定节点污染。它也不允许使用自定义实例引导脚本,这是我的另一个选项。
发布于 2020-06-17 20:27:00
我用来解决这个问题的是尼德霍格,在这个问题上,我会将“工作负载”Pods从一个节点中删除,直到GPU驱动程序和CNI引导完成为止。
与您指定的“不使用污染”不同的是,nidhogg动态地应用和删除污染,并且不需要在节点提供时间设置它们。
它可能需要调整您的工作量,以了解nidhogg将适用的污染。
另一种方法是让您描述的作业在节点完成时将标签应用到节点(它可以通过注入到Pod中的serviceAccount
令牌来实现),然后在工作负载中使用nodeSelector:
只对具有该标记的目标节点使用
https://serverfault.com/questions/1021922
复制相似问题