我的情况是我的pod由3个容器组成:
我想要的是:只有当collectd和fluentd都启动并运行时,应用程序才会启动..
因此,我在应用程序容器中创建了一个简单的 postStart 脚本,该脚本将永远等待collectd和fluentd的liveness / readyiness探测。我开发了这个部分,假设kubernetes并行启动所有容器,如果出现问题(liveness probe down),则会自动重启失败的容器。
但是我发现了两种奇怪的行为,严格地将这两种行为联系在一起:
现在我问的是,这种行为是功能还是错误?
(此处的问题结束,关于可能的答案的免费想法)
我阅读了很多文章和讨论,声明在容器启动的顺序中应该没有假设,但事实并非如此。此外,在所有可能的排序中,字母顺序在我看来并不是最具确定性的排序。
对我来说,容器上的postStart脚本有能力完全阻止其他两个,这似乎也很奇怪。但也可能是这个功能解决了依赖容器的问题!
=============================================== ========================= 更新2016年2月12日:我将链接在这里作为参考github上的问题 https://github.com/kubernetes/kubernetes/issues/37805