使用 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 名称以获取作业生成的所有 Pod 的日志。

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

最新更新