Kubernetes Job提供json文件输入



我必须运行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来实现这一点。

  1. 用配置文件的内容创建一个configmap
  2. 使pod使用该configmap,并在pod中填充存储在configmap
  3. 中的数据卷。
  4. 更改图像的入口点以从上述目录获取配置文件。