как скрипты / файлы монтируются в поды кубернетов - PullRequest
0 голосов
/ 10 июля 2020

Я хотел бы создать задание cron, которое запускает сценарий python, смонтированный как pv c, но я не понимаю, как поместить 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 Ответ

1 голос
/ 10 июля 2020

У вас есть том под названием application-code. Там лежит файл test.py. Теперь вы монтируете том, но не устанавливаете путь монтирования в соответствии с вашей командой оболочки.

Аргумент 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']

Pu sh изображение в вашем docker реестре и ссылка на него из вашего yml.

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