当主容器退出时,如何使k8s吊舱退出自身?

时间:2019-09-24 22:22:35

标签: kubernetes microservices kubernetes-pod

我正在为k8s吊舱使用侧卡模式,其中有两个容器:主容器和侧车容器。我想让Pod状态仅取决于主容器(例如,如果主容器失败/完成,则Pod应该处于相同状态),并丢弃边卡容器。

是否有一种优雅的方法?

2 个答案:

答案 0 :(得分:0)

不幸的是,restartPolicy标志适用于Pod中的所有容器,因此这种简单的解决方案并没有真正起作用。您确定您的逻辑不应该在initContainer中而不是在挎斗中吗?如果确实需要搭便车,请在逻辑结束时让它永远休眠。

答案 1 :(得分:0)

根据documentation

  

Pod正在运行,并且有两个容器。容器1退出失败。

     

记录失败事件。

     

如果restartPolicy为:

     
      
  • 始终:重新启动容器;广告连播阶段保持运行
  •   
  • OnFailure :重新启动容器;广告连播阶段保持运行
  •   
  • 从不:请勿重新启动容器;广告连播阶段保持运行
  •   
     

如果容器1未运行,并且容器2退出:

     

记录失败事件。

     

如果restartPolicy为:

     
      
  • 始终:重新启动容器;广告连播阶段保持运行
  •   
  • OnFailure :重新启动容器;广告连播阶段保持运行
  •   
  • 从不:Pod阶段变为失败
  •   

作为带有重新启动策略的解决方法(此问题的部分解决方案):永不-您可以将livenees探测的结果从主容器应用到sidecar容器(使用exec,http或tcp探测器)。

使用微服务时,这不是一个好的解决方案。

示例:

Analyze -> Fields, Items, & Sets -> Calculated Field...

请告诉我是否有帮助。