-
我有一个应用程序,通过部署服务工作,并通过Nginx-Ingress-controller与世界通信。
-
这个应用程序连接到MongoDB数据库。
-
我要求创建一个cronjob,每天午夜清理一次所有的MongoDB日志。
"添加一个CronJob来清除所有MongoDB日志每天午夜一次-我们想要的用干净的日志开始新的一天!">
我使用Helm来创建Nginx-INgress-controller,以及MongoDB。
有人知道我应该向CronJob添加哪些命令吗?
提前感谢。:)
代码:
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
对于MongoDB,我使用I helm - artifact hub命令:
- helm repo add bitnami https://charts.bitnami.com/bitnami
- 链接到repo- https://artifacthub.io/packages/helm/bitnami/mongodb.
插入到test-mongodb.yaml中的值:
architecture: replicaset
replicaCount: 3
persistence:
storageClass: "standard"
auth:
rootPassword: password
password: password
database: echo
username: koren
如果您想管理日志由于Kubernetes也存储stdin,日志Kubernetes自动管理日志循环,但是如果您的应用程序或mongoD日志内部存储在PVC文件系统或你可能需要旋转它daily.
你可以配置mongoD,而不是配置用于删除作业的特殊作业。旋转日志配置文件
/var/log/mongodb/*.log {
daily
missingok
rotate 5
compress
dateext
delaycompress
copytruncate
notifempty
}
示例:https://www.percona.com/blog/2018/09/27/automating-mongodb-log-rotation/
但是,如果您希望运行清除PVC中的日志的作业文件系统或您可以创建侧车容器。
我没有测试过,但是你可以创建简单的代码并在Kubernetes中作为Cronjob运行它,该节点JS或任何脚本将连接到MongoDB简单地管理数据库和轮换日志
db.adminCommand( { logRotate : server } )
连接到DB并旋转日志文档:
https://docs.mongodb.com/manual/tutorial/rotate-log-files/
我认为这将是一个简单的程序,将建立连接并运行旋转查询。