k8s 获取集群中的所有 Pod 层次结构,所有者引用的



我们想要获得集群中的所有pod,所以我们使用如下命令:

pods, err := client.CoreV1().Pods("").List(context.Background(), metav1.ListOptions{})

此代码将接收集群中的所有pod。

我的问题是:如果有一个代码或库,将带来所有的pod与owner reference。例如,如果pod由deploymentstatfulset拥有你会得到所有的层次结构,这里的trick是如果我需要一些递归的额外级别,例如statefulset由控制器拥有它有自定义类型

正如@CoolNetworking建议的那样,有一个库或代码可以让您获得所有pod及其所有者引用,但是您可以使用k8s API来检索每个pod的所有者引用。然后可以使用k8s API检索每个所有者引用的所有者对象。这将允许您创建集群中所有pod的分层结构。

Kubernetes API是通过HTTP提供的基于资源(RESTful)的编程接口。它支持通过标准HTTP动词(POST、PUT、PATCH、DELETE、GET)检索、创建、更新和删除主资源。

大多数Kubernetes API资源类型都是对象:它们代表集群上概念的具体实例,如pod或命名空间。

更多信息请参考kubernetes API文档

最新更新