如何检查最后一次健康检查是 运行 和 Pod 的结果

How to check the last time health check was run and the result for a Pod

有没有办法检查最后一次完成活动和就绪检查的时间以及相同的结果是什么。

我边做边查

kubectl get pod my-pod -o yaml

状态部分像这样显示,但没有告诉 kubelet 什么时候 运行 健康检查

  conditions:
  - lastProbeTime: null
    lastTransitionTime: 2019-09-17T10:38:20Z
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: 2019-09-17T10:38:35Z
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: 2019-09-17T10:38:35Z
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: 2019-09-17T10:38:20Z
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: docker://<some link>
    image: nginx:latest
    imageID: someid
    lastState: {}
    name: nginx
    ready: true
    restartCount: 0
    state:
      running:
        startedAt: 2019-09-17T10:38:22Z
  hostIP: 172.18.3.8
  phase: Running```

当一个 Pod 的所有容器都准备就绪时,它就被认为准备就绪。此信号的一种用途是控制哪些 Pods 用作服务的后端。当 Pod 未就绪时,它会从服务负载中移除 balancers.The kubelet 使用就绪探测来了解容器何时准备好开始接受流量。

您可以使用 kubectl describe pod liveness-exec 查看 pod 事件。输出应指示活性探测是否失败。您可以从 Kubernetes.io

获得更多详细信息

另外,一个Pod有一个PodStatus,它有一个PodConditions的数组,Pod通过或没有通过。

其中两个元素是

  • lastProbeTime 字段提供了 Pod 何时启动的时间戳 上次探测条件。
  • lastTransitionTime 字段提供了 Pod 何时 最后从一种状态转换到另一种状态

为此关闭了一个 issue

并且 pull request 公开所有 pods 的活性和就绪探测结果,因为普罗米修斯指标也被合并。

此功能正式发布后,您可以绘制所有 pods.

的活跃度和就绪度探测结果。

目前应该支持的内容由@nur 回答。