在查看复制 Controller 时,它会返回最新的 replicas
数下ReplicationControllerStatus
.我在文档中的任何地方都找不到 pod 的状态需要什么才能将其包含在其中。对 pod 进行调度是否足够?我注意到一个复制 Controller 会报告其状态的 pod,即使这些 pod 仍处于挂起状态。
最佳答案
非常有趣的问题!为了回答这个问题,我相信我们需要走《星球大战》的路线并使用来源:
更新 :我的同事 Stefan Schimanski 刚刚向我指出,实际上答案有点复杂;关键是 FilterActivePods :
func FilterActivePods(pods []api.Pod) []*api.Pod {
var result []*api.Pod
for i := range pods {
if api.PodSucceeded != pods[i].Status.Phase &&
api.PodFailed != pods[i].Status.Phase &&
pods[i].DeletionTimestamp == nil {
result = append(result, &pods[i])
}
}
return result
}
这意味着最终条件是:尚未终止且未处于正常终止状态的 pod .
请注意,在 Kubernetes 上下文中“已调度”的定义很简单
pod.spec.nodeName != ""
特定节点上的 Kubelet 监视 API 服务器以查找具有匹配
nodeName
的 pod然后将在所述节点上启动 pod。
关于kubernetes - ReplicationControllerStatus.replicas 下集群 API 返回的 Pod 的状态是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33755308/