Скопируйте файл из модуля cron в локальный каталог в AKS
Я создал задание cron, которое запускается каждые 60 минут. В контейнере задания я смонтировал том emptyDir в виде подробных логов. В моем контейнере я пишу CSV-файл по пути detailed-logs\logs.csv
,
Я пытаюсь скопировать этот файл из pod на локальную машину, используя kubectl cp podname:detailed-logs\logs.csv \k8slogs\logs.csv
но это выдает ошибку:
путь "подробные журналы \ logs.csv" не найден (такого файла или каталога нет).
После успешного выполнения задания созданный им модуль отправляется в completed
государство, это может быть проблемой?
1 ответ
Файл, на который вы ссылаетесь, не будет сохраняться после завершения работы вашего модуля. Что вы можете сделать, это сделать резервную копию файла, когда выполняется задание cron. Два решения, которые я могу предложить, это либо прикрепить постоянный том к модулю задания, либо загрузить файл куда-нибудь во время выполнения задания.
ИСПОЛЬЗУЙТЕ НАСТОЯЩИЙ ОБЪЕМ
Здесь вы можете создать PV через быстрый readWriteOnce
Постоянное требование объема:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Затем вы можете установить его на модуль, используя следующее:
...
volumeMounts:
- name: persistent-storage
mountPath: /detailed-logs
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: my-pvc
...
ЗАГРУЗИТЬ ФАЙЛ
Я делаю это, выполняя работу в контейнере, который имеет aws-cli
После установки и сохранения моего файла на AWS S3 вы можете выбрать другую платформу:
apiVersion: v1
kind: ConfigMap
metadata:
name: backup-sh
data:
backup.sh: |-
#!/bin/bash
aws s3 cp /myText.txt s3://bucketName/
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: s3-backup
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: aws-kubectl
image: expert360/kubectl-awscli:v1.11.2
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: s3-creds
key: access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: s3-creds
key: secret-access-key
command:
- /bin/sh
- -c
args: ["sh /backup.sh"]
volumeMounts:
- name: backup-sh
mountPath: /backup.sh
readOnly: true
subPath: backup.sh
volumes:
- name: backup-sh
configMap:
name: backup-sh
restartPolicy: Never