我正在研究 Kubernetes client-go,无法理解操作 Pod 结构的正确方法...
我得到一个 PodList pods 像这样:
// creates the clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
glog.Fatal(err)
}
// Get Pods
pods, err := clientset.CoreV1().Pods("").List(meta_v1.ListOptions{})
if err != nil {
fmt.Println(err)
return
}
然后我可以获得每个 Pod 的一些值使用像这样的循环
for _, pod := range pods.Items {
fmt.Println(pod.GetName(), pod.Namespace)
}
但仅来自 ObjectMeta 结构,它有一些 Getters (pod.GetName()),使用 .Value 也有效 (pod.Namespace)。我无法理解访问嵌套在 Spec PodSpec 中的数据的正确方法是什么和 Status PodStatus .
也许我缺少一些核心的 Golang 概念......任何人都可以启发我,指出我的方向或为我提供一个正确方法的通用示例吗?
最佳答案
我找到了解决方案,但我不会无耻地删除它,而是提供一个答案:
我想访问的 Spec 和 Status 结构可以使用 pod.Spec.NodeName
或 pod.Status.StartTime
之类的东西轻松访问...
如果有人可以提供更详尽的答案来补充这一点,请提供。
关于go - 操作 Kubernetes 的 client-go PodList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47023715/