一个容器中的短暂kubernetes容器(/ sidekick)(在复制控制器中)

我有一个包含两个容器的复制控制器,第一个是长寿命的吊舱,第二个是RC启动POD时的一些维护任务。 然而,由于第二个容器是短暂的,它在完成启动任务时会自行停止。 当Kuberbetes注意到这一点时,它会杀死POD并开始一个新的…

在Kuberbetes中处理这个问题的正确方法是什么?

正如你已经注意到的那样,从devise上来看,一个吊舱里的所有集装箱都注定会一起生活和死亡。 要知道你的最佳select是什么,而不知道你的搭档需要完成什么样的维护任务。 一般来说,我可以想到三种方法:

  1. 保持您的维护容器运行。 这可能是一个相当丑陋的解决scheme,因为它浪费资源。 如果维护任务可以从定期运行中受益,那才真正有意义。

  2. 将维护任务移到主容器,将多容器Pod有效地转换为单容器容器。 我假设你可以asynchronous运行任务(因为你已经可以在单独的容器中运行它)。 如果出于某些原因,您不能考虑相应地修改准备就绪状态和活性探测 ,以便您的容器有足够的时间来完成启动过程,然后才有资格终止。

  3. 考虑调整你的devise,使维护任务可以作为一个单独的pod(甚至作为一个工作 )运行。 然后,您需要pipe理任何依赖关系,并通过正确组合Kubernetes基元来连接自己。