目前,我有一个库伯内特斯吊舱,正在运行一个cron的工作。cron作业写入/var/log/cronlog的日志文件。但是,当我键入kubectl log my-pod-name时,不包含/var/log/cronlog的内容。
如何使/var/log/cronlog的内容包含在kubectl log my-pod-name的输出中?
发布于 2019-06-27 06:12:56
您可以附加容器启动脚本以包含日志。
类似于run.sh &尾巴-f /var/log/cronlog
发布于 2019-06-27 01:28:52
我认为您应该写到stdout和stderr,而不是写到文件中,以便能够使用kubectl log。
发布于 2019-06-27 09:56:40
首先,为什么不使用工作创建CronJob控制器
我认为你应该利用Kubernetes,并利用乔布斯,如果他们应该运行,而不是普通的cronjob。这将消耗更少的资源,并且您将快速检查cron作业是否失败。
此外,正如以前的答案中已经提到的,您需要将消息/日志发送到stdout。
下面是一个CronJob的示例,它发送date并打印Hello from the Kubernetes cluster到stdout,而日志可以由kubectl logs job/<JOB_NAME>访问。
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
namespace: default
spec:
schedule: "* * * * *" # run every minute
startingDeadlineSeconds: 10 # if a job hasn't starting in this many seconds, skip
concurrencyPolicy: Forbid # either allow|forbid|replace
successfulJobsHistoryLimit: 3 # how many completed jobs should be
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure我希望这能为你提供一些概况。
https://stackoverflow.com/questions/56781829
复制相似问题