Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

Come configurare i backup automatici

Questa guida vi spiega come attivare e configurare i backup automatici del vostro database MySQL su Hikube. I backup utilizzano Restic e sono archiviati in un bucket S3-compatible, il che permette un ripristino affidabile in caso di perdita di dati.

Prerequisiti

  • kubectl configurato con il vostro kubeconfig Hikube
  • Un'istanza MySQL distribuita sul vostro tenant
  • Un bucket S3-compatible accessibile (Hikube Object Storage, AWS S3, ecc.)
  • Le credenziali di accesso S3 (Access Key e Secret Key)

Passaggi

1. Preparare lo storage S3 e le credenziali

Prima di configurare i backup, assicuratevi di disporre delle seguenti informazioni:

InformazioneEsempioDescrizione
Regione S3eu-central-1Regione del bucket S3
Bucket S3s3.hikube.cloud/mysql-backupsPercorso completo del bucket
Access KeyHIKUBE123ACCESSKEYChiave di accesso S3
Secret KeyHIKUBE456SECRETKEYChiave segreta S3
Password ResticSuperStrongResticPassword!Password per la cifratura dei backup
avviso

Conservate la password Restic in un luogo sicuro. Senza questa password, e impossibile ripristinare i backup cifrati.

2. Configurare la sezione backup nel manifesto

Create o modificate il vostro manifesto MySQL per includere la sezione backup:

mysql-with-backup.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: MariaDB
metadata:
name: example
spec:
replicas: 3
size: 10Gi
resourcesPreset: small

users:
appuser:
password: strongpassword
maxUserConnections: 100

databases:
myapp:
roles:
admin:
- appuser

backup:
enabled: true
schedule: "0 2 * * *" # Ogni giorno alle 2 del mattino
cleanupStrategy: "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
s3Region: eu-central-1
s3Bucket: s3.hikube.cloud/mysql-backups
s3AccessKey: "HIKUBE123ACCESSKEY"
s3SecretKey: "HIKUBE456SECRETKEY"
resticPassword: "SuperStrongResticPassword!"

Parametri di backup

ParametroDescrizioneValore predefinito
backup.enabledAttiva i backupfalse
backup.schedulePianificazione cron"0 2 * * *"
backup.s3RegionRegione AWS S3"us-east-1"
backup.s3BucketBucket S3-
backup.s3AccessKeyChiave di accesso S3-
backup.s3SecretKeyChiave segreta S3-
backup.resticPasswordPassword Restic-
backup.cleanupStrategyStrategia di retention"--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
suggerimento

Adattate lo schedule secondo le vostre esigenze. Alcuni esempi comuni:

  • "0 2 * * *": ogni giorno alle 2:00 del mattino
  • "0 */6 * * *": ogni 6 ore
  • "0 3 * * 0": ogni domenica alle 3:00 del mattino

3. Applicare la configurazione

kubectl apply -f mysql-with-backup.yaml

4. Adattare la strategia di retention

La cleanupStrategy utilizza le opzioni di retention di Restic. Ecco alcuni esempi:

StrategiaDescrizione
--keep-last=3Conservare gli ultimi 3 snapshot
--keep-daily=7Conservare 1 snapshot al giorno per 7 giorni
--keep-weekly=4Conservare 1 snapshot a settimana per 4 settimane
--keep-within-weekly=1mConservare tutti gli snapshot settimanali dell'ultimo mese

Esempio per un ambiente di produzione:

mysql-production-backup.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: MariaDB
metadata:
name: production
spec:
replicas: 3
resourcesPreset: medium
size: 50Gi

backup:
enabled: true
schedule: "0 */6 * * *"
cleanupStrategy: "--keep-last=7 --keep-daily=7 --keep-weekly=4"
s3Region: eu-central-1
s3Bucket: s3.hikube.cloud/mysql-backups
s3AccessKey: "PROD_ACCESS_KEY"
s3SecretKey: "PROD_SECRET_KEY"
resticPassword: "ProdResticPassword!"

Verifica

Verificate che la configurazione sia stata applicata correttamente:

kubectl get mariadb example -o yaml | grep -A 10 backup

Risultato atteso:

  backup:
enabled: true
schedule: "0 2 * * *"
s3Region: eu-central-1
s3Bucket: s3.hikube.cloud/mysql-backups
cleanupStrategy: "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
nota

Il primo backup verra eseguito secondo la pianificazione cron definita in schedule. Potete verificare gli snapshot disponibili con il comando Restic (vedere la guida Come ripristinare un backup).

Per approfondire