想请教一下各位大佬,现在假如我有一个 job.yaml ,我需要通过这一个 yaml 文件创建多个 job ,按照 k8s 官方处理逻辑是会自动在 name 后面加入一串随机字符串作为 podName 。我希望能够在我通过 java api 创建 job 的时候返回该 podName 以确定身份,需要怎么做?
1
Frankcox Jan 24, 2024
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 的就行 |