【发布时间】:2022-02-15 17:26:38
【问题描述】:
我通过 client-go api 在 kubernetes 中创建了一份工作。现在想获取job的log,在client-go中找不到job的log api。所以我想获取一个job中所有pod的名字,通过名字获取POD日志,然后获取job的日志。
那么,如何通过client-go获取kubernetes作业中的pod名称?
非常感谢。
【问题讨论】:
标签: kubernetes client-go
我通过 client-go api 在 kubernetes 中创建了一份工作。现在想获取job的log,在client-go中找不到job的log api。所以我想获取一个job中所有pod的名字,通过名字获取POD日志,然后获取job的日志。
那么,如何通过client-go获取kubernetes作业中的pod名称?
非常感谢。
【问题讨论】:
标签: kubernetes client-go
我创建一个带有标签的 pod,然后通过 LabelSelector 获取它。 喜欢它:
config, err := clientcmd.BuildConfigFromFlags("", "~/.kube/config")
if err != nil {
println("config build error")
}
client, err := kubernetes.NewForConfig(config)
pods, err := client.CoreV1().Pods("test").List(context.TODO(),
v1.ListOptions{LabelSelector: "name=label_name"})
for _, v := range pods.Items {
log := client.CoreV1().Pods("test").GetLogs(v.Name, &v12.PodLogOptions{})
}
【讨论】: