编写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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐