Minio
Prerequisites
alias mc='kubectl -n storage exec deployment/minio -- mc'
mc config host add myminio http://minio.storage.svc:9000 <access-key> <secret-key>
Backup a bucket
mc mirror myminio/my-bucket ./backups/my-bucket/
Restore a bucket
mc mirror ./backups/my-bucket/ myminio/my-bucket
Backup all buckets (script)
for bucket in $(mc ls myminio | awk '{print $NF}'); do
echo "Backing up $bucket ..."
mc mirror myminio/$bucket ./backups/$bucket/
done
Scheduled backup (CronJob)
apiVersion: batch/v1
kind: CronJob
metadata:
name: minio-backup
namespace: storage
spec:
schedule: "0 4 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: backup
image: m.daocloud.io/docker.io/minio/mc:latest
command:
- sh
- -c
- |
mc alias set myminio http://minio.storage.svc:9000 $ACCESS_KEY $SECRET_KEY
mc mirror myminio/ ./backup/$(date +%Y%m%d)/
env:
- name: ACCESS_KEY
valueFrom:
secretKeyRef:
name: minio
key: root-user
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: minio
key: root-password
volumeMounts:
- name: backup
mountPath: /backup
restartPolicy: Never
volumes:
- name: backup
hostPath:
path: /data/backups/minio