脚本/文件如何挂载到kubernetes pod

时间:2020-07-10 05:17:28

标签: kubernetes cron persistent-volume-claims

我想创建一个cronjob,它运行一个安装为pvc的python脚本,但是我不知道如何从本地文件系统将test.py放入容器中

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
name: update_db
spec:
schedule: "*/1 * * * *"
jobTemplate:
    spec:
    template:
        spec:
        containers:
        - name: update-fingerprints
          image: python:3.6.2-slim
          command: ["/bin/bash"]
          args: ["-c", "python /client/test.py"]
          volumeMounts:
          - name: application-code
            mountPath: /where/ever
        restartPolicy: OnFailure
        volumes:
        - name: application-code
          persistentVolumeClaim:
          claimName: application-code-pv-claim

1 个答案:

答案 0 :(得分:1)

您有一个名为application-code的卷。 test.py文件位于其中。现在,您已经安装了该卷,但是没有根据您的shell命令设置mountPath。

参数为pyhton /client/test.py,因此您希望将文件放置在/client目录中。您只需要使用以下路径安装卷即可:

volumeMounts:
- name: application-code
  mountPath: /client

更新

如果您不需要群集外部的文件,则将其集成到您的docker映像中会容易得多。这里是一个示例Dockerfile

FROM python:3.6.2-slim

WORKDIR /data

COPY test.py .

ENTRYPOINT['/bin/bash', '-c', 'python /data/test.py']

将图像推送到docker注册表并从yml中引用它。

containers:
        - name: update-fingerprints
          image: <your-container-registry>:<image-name>