如何使用 go-client 在 kubernetes 中获取 pod 的状态

how to get status of a pod in kubernetes using go-client

我正在尝试删除我的 kubernetes 集群中的一个 pod,然后检查它的状态以查看 pod 关闭和重新启动需要多长时间。对于使用 go-client 获取特定 pod 状态的第二部分,我找不到任何有用的示例。任何帮助表示赞赏。

状态信息是整个 pod 的子结构,因此您使用正常的 getter(clientset.CoreV1() 等),然后查看 .Status 结构。

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

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

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

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

希望对您有所帮助!