代码之家  ›  专栏  ›  技术社区  ›  William Ross

kubernetes cron作业需要先完成一个命令吗?

  •  1
  • William Ross  · 技术社区  · 6 年前

    我有一个kubernetes cron作业,它创建一个压缩文件,大约需要1个小时。完成后,我想将这个zip文件上传到一个AWS S3存储桶。

    如何告诉cron作业在创建zip之后只执行s3命令?

    S3命令应该在同一个cron作业中吗?

    目前我的山药是这样的:

    kind: CronJob
    metadata:
      name: create-zip-upload
    spec:
      schedule: "27 5 * * *" # everyday at 05:27 AM
      concurrencyPolicy: Forbid
      jobTemplate:
        spec:
          template:
            spec:
              containers:
              - name: mycontainer
                image: 123456789.my.region.amazonaws.com/mycompany/myproject/rest:latest
            args:
            - /usr/bin/python3
            - -m
            - scripts.createzip
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Swiss    6 年前

    Kubernetes没有资源之间关系的概念。在一个资源中没有正式或干净的方法可以导致对另一个资源的影响。

    因此,最好的解决方案就是将s3 cmd放到同一个cronjob中。

    有两种方法可以做到这一点:

    1. 将s3-cmd逻辑添加到现有容器中。
    2. 在监视文件的同一cronjob中创建一个新容器,然后运行s3命令。