В качестве справки, пожалуйста, взгляните на kubectl logs
--help:
-- kubectl logs job/my-job
# Return snapshot logs from first container of a job named hello
kubectl logs job/hello -- will provide output only for one pod/container
-- while using (either label or selector) it gives you more flexible way to deal with your resources
# -l, --selector='': Selector (label query) to filter on.
В качестве альтернативы вы можете добавить собственные метки или использовать _ этикетка / селектор из описания работы:
labels:
controller-uid: 55d965d0-0016-42ba-b4f5-120c1a78798b
job-name: pi
Вы можете найти довольно похожий случай в документации: проверка вывода сразу всех заданий и Выполнение примера задания .
При использовании bash вы также можете попробовать:
pods=$(kubectl get pods --selector=job-name=pi --output=jsonpath='{.items[*].metadata.name}')
for pod in $pods ; do kubectl logs $pod ; done
Очень полезная команда для работы с объектами k8s:
kubectl get pods,jobs --show-labels
NAME READY STATUS RESTARTS AGE LABELS
pod/pi-25vcd 0/1 Completed 0 97s controller-uid=55d965d0-0016-42ba-b4f5-120c1a78798b,job-name=pi