我想计算服务的服务质量。为此,我必须计算 pod 处于运行状态的时间以及自 pod 创建以来经过的总时间。有没有办法在 Go 中得到这两个值?
答案 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) }