首页 > 解决方案 > 如何在 Kubernetes 中以毫秒为单位获取 pod 启动时间

问题描述

我正在尝试获取 pod 调度的性能。

当 kubectl 描述 pod 性能时,testpod。我们会得到类似的东西,如下所示

Type    Reason     Age   From                       Message
  ----    ------     ----  ----                       -------
  Normal  Scheduled  21s   default-scheduler          Successfully assigned default/performancetestpod to ip-172-31-22-111
  Normal  Pulled     20s   kubelet, ip-172-31-22-111  Container image "centos:7.6.1810" already present on machine
  Normal  Created    20s   kubelet, ip-172-31-22-111  Created container
  Normal  Started    20s   kubelet, ip-172-31-22-111  Started container
  Normal  Killing    10s   kubelet, ip-172-31-22-111  Killing container with id docker://performancetestpod:Need to kill Pod

1,有没有办法以毫秒为单位获取年龄。

2,有没有其他方法可以获取以毫秒为单位的 pod 启动值,例如:通过使用 prometheus 等

标签: dockerkubernetes

解决方案


根据我的经验,没有办法像您那样使用 kubectl 获得毫秒数。回答您的第二个问题 - 仔细查看kube-state-metrics。根据A Deep Dive into Kubernetes Metrics文章:

对象创建时间

了解 Kubernetes 中的对象是在什么时间创建的通常很有帮助。Kube-state-metrics 公开了它跟踪的几乎所有对象的创建时间。度量名称遵循该模式kube_<OBJECT>_created,并将包含对象名称和它所在的命名空间的值。该值是毫秒的纪元时间戳。

例如,CronJob 创建系列被称为kube_cronjob_created.


推荐阅读