使用k8s cronjob ,清除應用生成的日誌文件

目前應用日誌,tomcat日誌 統一輸出到 /data/logs/pod名字/ 目錄下,而且/data/logs 目錄掛載到cephfs上, tomcat 日誌使用 cronolog進行日誌切割api

 

使用 cronjob 建立一個pod,在天天2點開始 清除日誌。tomcat

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: 1

 

successfulJobsHistoryLimit   字段指定應保留多少已完成和失敗的做業, 顯示完成 pod的數量併發

concurrencyPolicy : cron做業不容許併發運行; 若是是時候運行新做業而且以前的做業還沒有完成,則cron做業會跳過新做業spa

 

建立cron做業後,使用如下命令獲取其狀態rest

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

 

cron做業還沒有安排或運行任何做業日誌

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

 

 pod的狀態以下code

相關文章
相關標籤/搜索