Java 如何能够获取 job 创建的对应 pod 的名称或者 IP

336 天前
 licolnlee886
想请教一下各位大佬,现在假如我有一个 job.yaml ,我需要通过这一个 yaml 文件创建多个 job ,按照 k8s 官方处理逻辑是会自动在 name 后面加入一串随机字符串作为 podName 。我希望能够在我通过 java api 创建 job 的时候返回该 podName 以确定身份,需要怎么做?
1074 次点击
所在节点    Kubernetes
1 条回复
Frankcox
336 天前
Java 的 k8s client 包我没写过,不太清楚,golang 的话,有两个方案:
1.List 同 namespace 下的所有 pod ,获取每个 Pod 的 OwnerReference ,根据 Kind=Job ,Name={job_name}进行匹配
2.直接通过 labels 创建 list 的 options,大概代码是
set := deployment.Spec.Selector.MatchLabels
listOptions := metav1.ListOptions{LabelSelector: metav1.FormatLabelSelector(metav1.SetAsLabelSelector(set))}
pods, err := clientset.CoreV1().Pods(deployment.Namespace).List(context.TODO(), listOptions)
这是 deployment 的,替换成 Job 的就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1011279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX