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

Concetti — MySQL

Architettura

MySQL su Hikube e un servizio gestito basato sull'operatore MariaDB-Operator. Sebbene l'operatore utilizzi MariaDB (un fork compatibile di MySQL), il servizio è completamente compatibile con i client e i protocolli MySQL. Ogni istanza distribuita tramite la risorsa MariaDB crea un cluster replicato con un primary e delle repliche per l'alta disponibilità.


Terminologia

TermineDescrizione
MariaDBRisorsa Kubernetes (apps.cozystack.io/v1alpha1) che rappresenta un cluster MySQL gestito. Il CRD si chiama MariaDB perché il servizio si basa su MariaDB-Operator.
PrimaryNodo principale che accetta letture e scritture.
ReplicaNodo in sola lettura, sincronizzato dal primary tramite la replica binlog.
MariaDB-OperatorOperatore Kubernetes che gestisce il deployment, la replica, il failover e i backup.
ResticStrumento di backup utilizzato per creare snapshot cifrati verso uno storage S3.
SwitchoverCommutazione pianificata del ruolo primary verso un altro nodo del cluster.
resourcesPresetProfilo di risorse predefinito (da nano a 2xlarge).

Replica e alta disponibilità

Il cluster MySQL utilizza la replica binlog di MariaDB:

  1. Il primary scrive tutte le modifiche nel binary log
  2. Le repliche consumano il binlog e applicano le modifiche
  3. In caso di guasto del primary, l'operatore promuove automaticamente una replica

Switchover manuale

Potete commutare il primary verso un altro nodo per effettuare una manutenzione:

kubectl edit mariadb <instance-name>
# Modificare spec.replication.primary.podIndex
avviso

La commutazione del primary comporta una breve interruzione delle scritture. Le letture restano disponibili tramite le repliche.


Backup

MySQL su Hikube utilizza Restic per i backup:

  • Gli snapshot sono cifrati con una password Restic
  • Archiviati in un bucket S3-compatible (Hikube Object Storage, AWS S3, ecc.)
  • La strategia di retention (cleanupStrategy) controlla la durata di conservazione
ParametroDescrizione
backup.schedulePianificazione cron (es: 0 2 * * *)
backup.cleanupStrategyOpzioni Restic di retention (es: --keep-last=3 --keep-daily=7)
backup.resticPasswordPassword di cifratura dei backup
backup.s3*Credenziali e bucket S3
suggerimento

Testate regolarmente la procedura di ripristino. Un backup non testato non garantisce un ripristino riuscito.


Gestione di utenti e database

Il manifesto permette di dichiarare:

  • Utenti: nome, password, limite di connessioni (maxUserConnections)
  • Database: nome e assegnazione di ruoli
  • Ruoli: admin (lettura/scrittura completa), readonly (solo SELECT)

Una password root viene generata automaticamente dall'operatore e memorizzata nel Secret <instance>-credentials.


Preset di risorse

PresetCPUMemoria
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi
avviso

Se il campo resources (CPU/memoria espliciti) e definito, resourcesPreset viene ignorato.


Limiti e quote

ParametroValore
Repliche maxSecondo la quota del tenant
Dimensione archiviazione (size)Variabile (in Gi)
maxUserConnectionsConfigurabile per utente (0 = illimitato)

Per approfondire