【问题标题】:Kubernetes CronJob to run Python scriptKubernetes CronJob 运行 Python 脚本
【发布时间】:2021-03-11 13:16:46
【问题描述】:

我正在尝试通过 Kubernetes CronJob 安排 Python 脚本,但由于某种原因,我无法理解我该怎么做。我可以运行像echo Hello World 这样的简单脚本,但这不是我想要的

我尝试使用此规范:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: test
spec:
  schedule: "*/1 * * * *"
  concurrencyPolicy: "Forbid"
  failedJobsHistoryLimit: 10
  startingDeadlineSeconds: 600 # 10 min
  jobTemplate:
    spec:
      backoffLimit: 0
      activeDeadlineSeconds: 3300 # 55min
      template:
        spec:
          containers:
            - name: hello
              image: python:3.6-slim
              command: ["python"]
              args: ["./main.py"]
          restartPolicy: Never

但是我无法运行它,因为找不到 main.py,我知道不支持相对路径,所以我硬编码了路径但是我找不到我的主目录,我尝试做 @987654324 @ 那里我的文件夹名称不可见,因此我无法访问我的项目存储库。

最初我打算运行 bash 脚本,它可以:

  1. pip install requirements.txt 的安装要求
  2. 然后运行 ​​Python 脚本

但我不确定如何使用 kubernetes 做到这一点,这让我很困惑

简而言之,我希望能够运行 k8s CronJob,它可以通过首先安装要求然后运行它来运行 Python 脚本

【问题讨论】:

  • 您无法运行它,因为您使用的是图像python:3.6-slim。为了使它工作,您需要根据python:3.6-slim 创建自己的图像。请查看following link 以了解如何构建自己的图像。然后你需要能够用 Kubernetes 看到你的镜像。
  • @Shashank Sharma 你解决了这个问题还是它仍然是有效的问题?

标签: python kubernetes


【解决方案1】:

启动脚本 ./main.py 在哪里?它是否存在于图像中。 您需要使用 python:3.6-slim 作为基础镜像来构建新镜像,并将您的 python 脚本添加到 PATH。那么你就可以从 k8s CronJob 运行它了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2021-01-22
    • 1970-01-01
    • 2013-01-26
    • 2015-02-16
    • 2018-04-09
    • 1970-01-01
    相关资源
    最近更新 更多