我们想要获得集群中的所有pod,所以我们使用如下命令:
pods, err := client.CoreV1().Pods("").List(context.Background(), metav1.ListOptions{})
此代码将接收集群中的所有pod。
我的问题是:如果有一个代码或库,将带来所有的pod与owner reference
。例如,如果pod由deployment
或statfulset
拥有你会得到所有的层次结构,这里的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文档