有没有办法获得 pod 在 kubernetes 中处于 RUNNING 状态和 PENDING 状态的时间?

时间:2021-07-01 08:43:36

标签: go kubernetes google-kubernetes-engine kubernetes-pod

我想计算服务的服务质量。为此,我必须计算 pod 处于运行状态的时间以及自 pod 创建以来经过的总时间。有没有办法在 Go 中得到这两个值?

2 个答案:

答案 0 :(得分:-1)

这不是 Golang 特有的,而是:

解决此问题的一种简单方法是使用 Kubernetes 附带的默认 kube-state-metrics(基本上只是查询 Kubernetes API 并以 Prometheus 格式发布指标)。

在这些指标中,您会发现 information regarding pods status,这样您就应该能够计算出您的 QoS。

答案 1 :(得分:-1)

您可以使用 Get 函数获取特定的 POD 信息(以下示例获取整个 Status 结构):

<块引用>

pod, _ := clientset.CoreV1().Pods("kubernetes").Get(pod.Name, metav1.GetOptions{}) fmt.Println(pod.Status)

此外,您可以使用 List 函数获取特定命名空间中的所有 pod,然后对它们进行范围:

<块引用>

pods, _ := clientset.CoreV1().Pods("kubernetes").List(metav1.ListOptions{FieldSelector: "metadata.name=kubernetes"}) for _, pod := range pods.Items { fmt .Println(pod.Name, pod.Status) }

相关问题