Периодический снимок тома в Kubernetes
Я написал CronJob , который периодически делает снимок тома моего PVC . Ниже приведен файл CronJob :
kind: CronJob
metadata:
name: mycronjob
spec:
schedule: "*/2 * * * *" # Run the job every 2 minutes
jobTemplate:
spec:
template:
spec:
containers:
- name: webserver-container
image: kubectl:latest
command:
- /bin/sh
- -c
- /app/script.sh
volumeMounts:
- name: script-volume
mountPath: /app
restartPolicy: OnFailure
volumes:
- name: script-volume
configMap:
name: script-configmap
Файл снимка тома выглядит следующим образом:
kind: VolumeSnapshot
metadata:
name: snap-shot-test
spec:
volumeSnapshotClassName: csi-snapclass
source:
persistentVolumeClaimName: my-test-apps
А вот файл скрипта :
#!/bin/bash
kubectl apply -f volumesnapshot.yml
В первый раз задание cron успешно выполняется, но после этого появляется сообщение Volumesnapshot.snapshot.storage.k8s.io/snap-shot-test без изменений.
Как я могу периодически делать снимок тома PVC, имея две последние копии снимка?
1 ответ
Мне кажется, что то, что вы описываете, отражает файлы YAML, которыми вы поделились; нет ничего, что могло бы изменить имя резервной копии, и поэтому она никогда не создаст новую.
Если вы хотите сделать резервную копию одного PVC на другой «необработанным» способом с помощью сценариев, возможно, подумайте о задании, которое монтирует 2 тома (исходный и целевой) и выполняет простойcp -Rp /volume-source/* /volume-destination/
В противном случае, если вы хотите выполнить работу правильно, рассмотрите возможность использования такого инструмента, как Velero.