我必须运行Kubernetes作业,只有一个pod和一次执行(不需要并行pod)。任务完成后终止作业。
我的应用程序是使用python开发的,这就是我手动运行的方式
python3 app.py -input-file big_file_config.json -run_type job
My job file:
apiVersion: batch/v1
kind: Job
metadata:
name: loader-triiger
spec:
backoffLimit: 5
activeDeadlineSeconds: 60000
template:
spec:
containers:
- name: loader-triiger
image: ""
command: ["appy.py", "-input-file", "big_file_config.json", "-run_type", "job"] # how to pass inputfile to kubernetes job pod
imagePullPolicy: Always
resources:
limits:
memory: "16048Mi"
cpu: "16000m"
restartPolicy: Never
Dockerfile:
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
# run Application
ENTRYPOINT ["python3"]
我可以直接上传json输入文件到docker镜像,但图像大小增加,而且,每次输入更改都需要构建一个docker镜像。
所以提供支持命令行参数的选项来接受kuberenets作业pod的输入文件是很好的。任何帮助都非常感谢
您可以使用configmap来实现这一点。
- 用配置文件的内容创建一个configmap
- 使pod使用该configmap,并在pod中填充存储在configmap 中的数据卷。
- 更改图像的入口点以从上述目录获取配置文件。