一个豆荚有两个容器:A和B,A需要调用B,所以它必须等待B准备。目前,我的这个准备状态检测的实现是使用“就绪探测”。然而,存在一个问题。对于“k8s.io/api/core/v1容器”中的容器结构,没有像“就绪”这样的布尔值。这对我来说没有意义,难道不应该有这样一个字段来让另一个容器很容易地检测到状态吗?还是我一开始就搞错了这个“准备状态调查”?
我注意到,如果一个容器的准备状态不好,那么它的容器就不会被创建。因此,也许我可以查看这个容器,并检查B的容器是否已经创建,这可能就是为什么“k8s.io/api/core/v1容器”没有一个用于“就绪探测”的布尔字段的原因。
我的问题是:可以用容器的存在作为“就绪探测”的指示吗?
发布于 2021-11-30 06:36:01
不,Pod容器存在的事实并不意味着容器已经准备好了。想想一个Java容器,它需要30秒的时间来引导。容器将存在,并没有为前30秒做好准备。
您需要做的是检查Pod状态下的容器状态:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states
更具体地说,您需要遍历数组status.containerStatuses,直到找到感兴趣的容器的名称,然后检查ready字段。
来自docs (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodStatus):
containerStatuses.ready (布尔值):指定容器是否已通过其就绪探测。
https://stackoverflow.com/questions/70164879
复制相似问题