首页 > 解决方案 > 使用 Kubernetes/OpenShift API 从 JOB 名称中查找创建的 POD 名称

问题描述

我想通过使用 OpenShift 或 Kubernetes REST API 的作业控制器找到创建的 Pod 的作业名称。

使用 CLI,可以通过执行以下操作:

$ oc describe job testapi | grep -A 4 Events
Events:
  Type    Reason            Age   From            Message
  ----    ------            ----  ----            -------
  Normal  SuccessfulCreate  6m    job-controller  Created pod: testapi-gff8c

我们可以使用 REST API 进行相同的操作吗?

我想获取 Pod 名称以获取 Job 生成的所有 Pod 的日志。

标签: kubernetesopenshift

解决方案


describe 命令聚合多个结果以提供其输出,因此您需要做一些额外的工作。

调用events端点并使用 jq 之类的工具解析结果,或者可以通过 grep 部分提取结果。

下面是一个假设作业名称为testapi且命名空间为的示例myproject

curl -H "Authorization: Bearer $(oc whoami -t)" -k https://127.0.0.1:8443/api/v1/namespaces/myproject/events?fieldSelector=involvedObject.name%3Dtestapi%2CinvolvedObject.namespace%3Dmyproject%2CinvolvedObject.kind%3DJob | grep Created


推荐阅读