CronJob

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "0 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: postgres-alpine
            image: xxxx
            imagePullPolicy: IfNotPresent
            command:
                - psql
                - '-h'
                - 数据库服务地址
                - '-d'
                - 数据库
                - '-f'
                - sql文件
              env:
                - name: PGPASSWORD
                  valueFrom:
                    secretKeyRef:
                      name: capital-airport-backend
                      key: PG_PASSWORD
                - name: PGUSER
                  valueFrom:
                    secretKeyRef:
                      name: capital-airport-backend
                      key: PG_USER
          restartPolicy: OnFailure

时间表 0 * * * * 表示在每小时的第 0 分钟执行,也就是每小时执行一次
这里是使用的我自己常见的一个镜像,在alpine中加入了postgres,为了使用psql工具,数据库密码和账户存在了secret中,secret的name是capital-airport-backend

secret

部分secret的data内容

data:
  PG_PASSWORD: xxxxx
  PG_USER: xxxxx

到时时间执行时间之后,会生成一个job,job会生成一个pod来执行任务

Logo

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

更多推荐