使用k8s的cronjob定时清理es索引

  • Post author:
  • Post category:其他


编写yaml文件

vim esDeleteJob.yaml

apiVersion: batch/v1beta1

kind: CronJob

metadata:

name: es-delete-job

namespace: kube-system  –需要和es在同一个命名空间,否则修改请求curl,基础k8s知识

spec:

schedule: “0 0 1/1 * *”  –每天一次

jobTemplate:

spec:

template:

spec:

containers:

– name: es-delete-job

image: centos –选择一个有curl的镜像即可,自己做也行

args:

– /bin/sh

– -c

– curl -XDELETE http://elasticsearch-logging:9200/logstash-$(date  +”%Y.%m.%d” -d “10 days ago”) –清理十天前的

restartPolicy: OnFailure

创建cronjob


kubectl apply -f  esDeleteJob.yaml

检查cronjob


kubectl get cronjob –all-namespaces

这时候我们想要测试下效果,所以从cronjob中手动创建下job,不了解job和cronjob的自行查找文档 = =


kubectl create job testjob –from=cronjob/es-delete-job -n kube-system

检查job


kubectl get job -n kube-system

获取pod


kubectl describe job testjob -n kube-system

从最下面一行获取pod

查看日志,检查是否成功


kubectl logs testjob-b6d69 -n kube-system



版权声明:本文为Lento_liu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。