我有两个容器,也许是A和B,A应当在B之前运行,但是A是服务器应用程序,其最终类型是“运行”而不是“完整”,所以我想知道这样B永远不会执行吗?那我该如何处理呢?
答案 0 :(得分:3)
如果A和B是同一个广告连播的一部分,那么initContainer是建立排序的传统方式。
在Kubernetes Pod lifecycle中,我想你的意思是“正在运行,但没有终止”
您更适合使用pod liveness/readiness probe,因为服务器在准备就绪之前不会接受请求。
从Straight to the Point: Kubernetes Probes阅读“ Peter Malina”
就绪性和活动性探针在容器的整个使用寿命中并行运行。
- 使用活动探针检测内部故障并重新启动容器(例如,关闭HTTP服务器)。
- 使用就绪探针来检测您是否可以提供流量(例如已建立的数据库连接)并等待(不重新启动)容器。
失效的容器也不是现成的容器。
为了提供交通服务,舱内的所有容器必须准备就绪。
您可以添加pod readiness gate (stable from 1.14)来指定要评估Pod准备状态的其他条件。
还请阅读Kubernetes Liveness and Readiness Probes: How to Avoid Shooting Yourself in the Foot中的“ Colin Breck”
“ Should Health Checks call other App Health Checks”将该方法与InitContainer approach
进行了比较