基本原理其实就是,k8s 会单独启动一个pod 来专门跑任务,等任务跑完后,就把这个pod 删除
上yaml
apiVersion: batch/v1beta1 kind: CronJob metadata: name: delesindexjob spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: delesindexjob image: centos args: - /bin/sh - -c - curl -X DELETE "ip:9200/zipkin-qa:span-`date +%F -d "-7 days"`" restartPolicy: OnFailure imagePullSecrets: - name: qcloudregistrykey - name: tencenthubkey
es 数据库需要定期删除,所以我就只保留了7天的,然后调用相关接口进行删除,这里是每分钟执行一次,其实可以一天执行一次就可以
这里有两个坑,
1,之前用的alpine 但是发现用了curl 命令时候并不是很好穿参数,导致任务执行失败
2,拉取镜像认证,因为是用的腾讯云,但是之前抄的官方文档,始终都是拉取失败,后来加上secrests 后就好了