我们在晚上安排的 cronjob 已正确启动,但映像本身的运行时间比计划的要晚得多。我们预计拉取映像或从群集请求资源时出现问题。通常我可以在kubectl describe job-name
输出的事件部分看到此类错误。在本节中,我可以看到诸如pull image
create container
等事件。但在作业完成后,不再显示任何事件。
是否可以查看已完成作业的这些事件?
还是有另一种方法可以调查此类问题?
存储事件的问题不仅仅是 cronjobs。默认情况下,Kubernetes 中的事件只存储 1 小时(--event-ttl 标志表示 kube-apiserver(。这意味着,如果你的 cronjob 在两个小时前运行 - 你不会在"kubectl describe"中看到事件。
为了保存事件以供以后调查,您需要将它们导出到某个地方。例如,Google Kubernetes Engine 将事件存储到 Stackdriver 中。对于 vanilla Kubernetes,您可以使用 event_exporter 或 Elasticsearch 将事件存储在 Prometheus 中。这能回答你的问题吗?