序列化豆荚/头盔图的部署

时间:2018-12-04 16:10:40

标签: kubernetes kubernetes-helm

我有多个头盔图,每个头盔图都创建一个部署(通常每个头盔都创建一个吊舱)。

要求是序列化Pod的部署,即,在可以部署第二个Pod之前,第一个Pod必须处于运行状态。 (因为第二个Pod从第一个Pod读取值)。同样,第三个容器只能与第二个容器一起启动,运行或完成。

为此,我尝试使用伞形头盔挂钩,但挂钩是在图表对象级别而非图表集合上进行评估的。

我一直在寻找一个初始化容器,该容器在运行第二个容器之前会定期检查第一个容器的就绪探针(不确定是否可以这样做)?不确定-想法,请...

1 个答案:

答案 0 :(得分:1)

初始化容器

如果您不介意在运行下一个服务之前先运行之前的服务,则可以利用“初始化容器”功能:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

  

它们在任何应用容器启动之前就运行完毕,而应用   容器并行运行,因此Init容器提供了一种简便的方法   阻止或延迟应用容器的启动,直到某些   满足先决条件。

行为

  

在启动Pod期间,依次启动Init容器,   网络和卷初始化之后。每个容器必须   在下一个开始之前成功退出。如果容器失败   由于运行时而启动或因失败而退出,则重试   根据Pod restartPolicy。但是,如果Pod restartPolicy   设置为始终,则初始化容器使用RestartPolicy OnFailure。

     

在所有初始化容器都成功之前,Pod不能准备就绪。的   初始化容器上的端口未在服务下聚合。豆荚   正在初始化的状态为Pending,但应该有一个   条件初始化设置为true。

     

如果重新启动Pod,则所有的初始化容器都必须再次执行。

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#detailed-behavior

注意事项

在决定使用此功能之前,请查看文档中的差异和限制。

即。

  

与常规容器的区别

     

初始化容器支持应用容器的所有字段和功能,   包括资源限制,数量和安全设置。然而,   处理初始化容器的资源请求和限制   稍有不同,