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

2024-01-24 18:15:27 +08:00
 licolnlee886
想请教一下各位大佬,现在假如我有一个 job.yaml ,我需要通过这一个 yaml 文件创建多个 job ,按照 k8s 官方处理逻辑是会自动在 name 后面加入一串随机字符串作为 podName 。我希望能够在我通过 java api 创建 job 的时候返回该 podName 以确定身份,需要怎么做?
1118 次点击
所在节点    Kubernetes
1 条回复
Frankcox
2024-01-24 19:14:13 +08:00
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://tanronggui.xyz/t/1011279

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

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

© 2021 V2EX