我正在使用Kubernetes作业进行测试; Shell脚本运行该作业并具有设置/拆卸逻辑。工作有
components:
schemas:
Pet:
type: object
required:
- petType
discriminator:
propertyName: petType
Cat:
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Cat`
properties:
name:
type: string
petType:
type: string
default: 'Cat'
Dog:
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Dog`
properties:
bark:
type: string
petType:
type: string
default: 'Dog'
restartPolicy: Never
这意味着如果作业失败,它将创建一个新的pod并重试一次。
作业完成后,我想转储作业中所有吊舱的日志。但是当我这样做
backoffLimit: 2
我只能从其中一个吊舱中获得日志,并以kubectl logs job/my-test
之类的前缀。
Found 2 pods, using pod/my-test-ntb4w
标志不会为我提供来自所有吊舱的日志。
如何通过Shell脚本从作业中的所有Pod获取日志?
答案 0 :(得分:1)
使用--all-containers=true
而不是--selector
似乎可以从所有窗格中获取日志:
job/my-test
答案 1 :(得分:1)
作为参考,请查看ax.set_xticklabels(x)
--help:
ax = df_month.plot(figsize=(13, 4))
x = ax.get_xticks()
print(x)
或者,您可以添加自定义 标签 或从职位描述中使用_ 标签/选择器 >
kubectl logs
您可以在文档中找到非常相似的情况:checking on the output of all jobs at once和Running an example Job。
使用bash时,您也可以尝试:
-- 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.
使用k8s对象非常有用的命令:
labels:
controller-uid: 55d965d0-0016-42ba-b4f5-120c1a78798b
job-name: pi