Zum Hauptinhalt springen
Version: 3.0.0-alpha (Diátaxis)

Konzepte — MySQL

Architektur

MySQL auf Hikube ist ein verwalteter Dienst basierend auf dem Operator MariaDB-Operator. Obwohl der Operator MariaDB (einen MySQL-kompatiblen Fork) verwendet, ist der Dienst vollständig kompatibel mit MySQL-Clients und -Protokollen. Jede über die Ressource MariaDB bereitgestellte Instanz erstellt einen replizierten Cluster mit einem Primary und Replikas für Hochverfügbarkeit.


Terminologie

BegriffBeschreibung
MariaDBKubernetes-Ressource (apps.cozystack.io/v1alpha1), die einen verwalteten MySQL-Cluster darstellt. Die CRD heißt MariaDB, da der Dienst auf dem MariaDB-Operator basiert.
PrimaryHauptknoten, der Lese- und Schreibvorgänge akzeptiert.
ReplicaSchreibgeschützter Knoten, der vom Primary über Binlog-Replikation synchronisiert wird.
MariaDB-OperatorKubernetes-Operator, der Bereitstellung, Replikation, Failover und Sicherungen verwaltet.
ResticSicherungstool zum Erstellen verschlüsselter Snapshots auf S3-Speicher.
SwitchoverGeplanter Wechsel der Primary-Rolle zu einem anderen Knoten im Cluster.
resourcesPresetVordefiniertes Ressourcenprofil (nano bis 2xlarge).

Replikation und Hochverfügbarkeit

Der MySQL-Cluster verwendet die Binlog-Replikation von MariaDB:

  1. Der Primary schreibt alle Änderungen in das Binary Log
  2. Die Replikas konsumieren das Binlog und wenden die Änderungen an
  3. Bei einem Ausfall des Primary befördert der Operator automatisch ein Replika

Manueller Switchover

Sie können den Primary zu einem anderen Knoten für Wartungszwecke wechseln:

kubectl edit mariadb <instance-name>
# spec.replication.primary.podIndex ändern
Warnung

Der Wechsel des Primary verursacht eine kurze Unterbrechung der Schreibvorgänge. Lesevorgänge bleiben über die Replikas verfügbar.


Sicherung

MySQL auf Hikube verwendet Restic für Sicherungen:

  • Die Snapshots werden mit einem Restic-Passwort verschlüsselt
  • Gespeichert in einem S3-kompatiblen Bucket (Hikube Object Storage, AWS S3 usw.)
  • Die Aufbewahrungsstrategie (cleanupStrategy) steuert die Aufbewahrungsdauer
ParameterBeschreibung
backup.scheduleCron-Zeitplan (z.B.: 0 2 * * *)
backup.cleanupStrategyRestic-Aufbewahrungsoptionen (z.B.: --keep-last=3 --keep-daily=7)
backup.resticPasswordVerschlüsselungspasswort für die Sicherungen
backup.s3*S3-Anmeldedaten und Bucket
Tipp

Testen Sie regelmäßig das Wiederherstellungsverfahren. Eine nicht getestete Sicherung garantiert keine erfolgreiche Wiederherstellung.


Benutzer- und Datenbankverwaltung

Das Manifest ermöglicht die Deklaration von:

  • Benutzern: Name, Passwort, Verbindungslimit (maxUserConnections)
  • Datenbanken: Name und Rollenzuweisung
  • Rollen: admin (vollständiger Lese-/Schreibzugriff), readonly (nur SELECT)

Ein root-Passwort wird automatisch vom Operator generiert und im Secret <instance>-credentials gespeichert.


Ressourcen-Presets

PresetCPUSpeicher
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi
Warnung

Wenn das Feld resources (explizite CPU/Speicher) definiert ist, wird resourcesPreset ignoriert.


Limits und Kontingente

ParameterWert
Max. ReplikasJe nach Tenant-Kontingent
Speichergröße (size)Variabel (in Gi)
maxUserConnectionsPro Benutzer konfigurierbar (0 = unbegrenzt)

Weiterführende Informationen