在二进制包(RPM/DEB)中部署NebulaGraph时,我可以利用OS的logrotate,这是清理生成的日志的基本期望/解决方案。
虽然在k8的部署中,在操作系统级别不再有这样的层,但我应该做的最先进的事情是什么?还是星云操作器中缺失的部分?
我认为我们也可以将log dir附加到运行logrotate的pod上,但是对我来说它看起来并不优雅(或者我错了?)
经过一番研究,我认为最好的方法是利用K8s Conjob API可以提供的功能。
我们可以这样创建它:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: log-cleanup
spec:
schedule: "0 0 * * *" # run the job every day at midnight
jobTemplate:
spec:
template:
spec:
containers:
- name: log-cleanup
image: your-log-cleanup-image:latest
command: ["/bin/sh", "-c", "./cleanup.sh /path/to/log"]
restartPolicy: OnFailure
在/cleanup.sh
中,我们可以简单地将日志删除逻辑或日志归档逻辑(例如将它们移动到s3)