使用k8s cronjob ,清除应用生成的日志文件

目前应用日志,tomcat日志 统一输出到 /data/logs/pod名字/ 目录下,并且/data/logs 目录挂载到cephfs上, tomcat 日志使用 cronolog进行日志切割

使用k8s cronjob ,清除应用生成的日志文件

使用 cronjob 创建一个pod,在每天2点开始 清除日志。

apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cleanlog
namespace: testihospital
spec:
concurrencyPolicy: Forbid
schedule: "0 2 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: cleanlog
image: busybox
volumeMounts:
- name: logs
mountPath: /data/logs
command: ["/bin/sh"]
args: ["-c","find /data/logs/ -type f -mtime +30 -name '*.log' | xargs rm -rf"]
volumes:
- name: logs
persistentVolumeClaim:
claimName: cephfs-mount2-pvc
restartPolicy: OnFailure
successfulJobsHistoryLimit:

successfulJobsHistoryLimit   字段指定应保留多少已完成和失败的作业, 显示完成 pod的数量

concurrencyPolicy : cron作业不允许并发运行; 如果是时候运行新作业并且之前的作业尚未完成,则cron作业会跳过新作业

创建cron作业后,使用以下命令获取其状态

[root@master1 crontab]# kubectl get cronjob hello -n testihospital
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
hello */ * * * * False 44s 20m

cron作业尚未安排或运行任何作业

[root@master1 ~]# kubectl get jobs --watch -n testihospital
NAME COMPLETIONS DURATION AGE
hello- / 6s 35s

pod的状态如下

使用k8s cronjob ,清除应用生成的日志文件

上一篇:kubectl客户端工具远程连接k8s集群


下一篇:Tortoise SVN 提示 clean up 然而 clean up 没卵用的解决方法