python - Kubernetes CronJob 运行 Python 脚本
问题描述
我正在尝试通过 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,我知道不支持相对路径,所以我硬编码了路径,但后来我找不到我的主目录,我试着ls /home/
在那儿做我的文件夹名称不可见,因此我无法访问我的项目存储库。
最初我打算运行可以执行以下操作的 bash 脚本:
- 安装要求
pip install requirements.txt
- 然后运行 Python 脚本
但是我不确定如何使用 kubernetes 做到这一点,这让我很困惑
简而言之,我希望能够运行 k8s CronJob,它可以通过首先安装要求然后运行它来运行 Python 脚本
解决方案
启动脚本 ./main.py 在哪里?它是否存在于图像中。您需要使用 python:3.6-slim 作为基础镜像来构建新镜像,并将您的 python 脚本添加到 PATH。那么你就可以从 k8s CronJob 运行它了
推荐阅读
- docker - docker 环境变量不会被替换
- jquery - 如何使用 jQuery 验证插件验证 Select2 插件数组
- javascript - 如何设置 Node.js 服务器以使用 index.php 而不是默认的 index.html?
- .net - SignalR 通信测试
- mysql - 将数据库加载到 MySQL 服务器时出错
- spring-boot - Spring-data-cassandra:在@Query 语句中将枚举数组值作为参数传递失败
- c# - 如何从 dapper repo 调用返回具有字典属性的对象
- windows - 编译指示导出函数在 Ada 可执行文件中不是外部的
- javascript - 在组件中反应显示图像
- laravel - 最后一个 Laravel 控制器功能丢失数据