V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
licolnlee886
V2EX  ›  Kubernetes

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

  •  
  •   licolnlee886 · 336 天前 via Android · 1073 次点击
    这是一个创建于 336 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想请教一下各位大佬,现在假如我有一个 job.yaml ,我需要通过这一个 yaml 文件创建多个 job ,按照 k8s 官方处理逻辑是会自动在 name 后面加入一串随机字符串作为 podName 。我希望能够在我通过 java api 创建 job 的时候返回该 podName 以确定身份,需要怎么做?
    1 条回复    2024-01-24 19:14:13 +08:00
    Frankcox
        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 的就行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.