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

时间:2019-01-17 20:36:12

标签: kubernetes

我有一个Kubernetes cron作业,它创建一个大约需要1个小时的zip文件。完成后,我想将此zip文件上传到AWS s3存储桶。

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

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

目前我的YAML如下:

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
import random

# Declare the PDF file and the single figure
pp = PdfPages('test.pdf')
thefig = plt.figure()
thefig.suptitle("Group 1")

# Generate 4 subplots for the same figure, arranged in a 2x2 grid
subplots = [ ["Plot One", 221], ["Plot Two", 222],
             ["Plot Three", 223], ["Plot Four", 224] ]
for [subplot_title, grid_position] in subplots:
    plt.subplot(grid_position)
    plt.title(subplot_title)
    # Make a random bar graph:
    plt.bar(range(1,11), [ random.random() for i in range(10) ])

# Add some spacing, so that the writing doesn't overlap
plt.subplots_adjust(hspace=0.35, wspace=0.35)

# Finish
pp.savefig()
pp.close()

1 个答案:

答案 0 :(得分:2)

Kubernetes没有资源之间的关系的概念。在一种资源中发生某些事情不会对另一种资源造成影响,这不是一种官方的或干净的方法。

因此,最好的解决方案是将s3 cmd放入同一cronjob。

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

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