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

Vertikal skalieren

Diese Anleitung erklärt, wie Sie die CPU- und Speicherressourcen Ihrer MySQL-Instanz auf Hikube anpassen, entweder über ein vordefiniertes Preset oder durch Definition expliziter Werte.

Voraussetzungen

  • kubectl konfiguriert mit Ihrer Hikube-Kubeconfig
  • Eine MySQL-Instanz auf Ihrem Tenant bereitgestellt
  • Kenntnis der Ressourcenanforderungen Ihrer Arbeitslast

Schritte

1. Aktuelle Ressourcen überprüfen

Überprüfen Sie die aktuelle Konfiguration Ihrer MySQL-Instanz:

kubectl get mariadb example -o yaml | grep -A 5 -E "resources:|resourcesPreset"

Erwartetes Ergebnis (mit Preset):

  resourcesPreset: nano

Erwartetes Ergebnis (mit expliziten Ressourcen):

  resources:
cpu: 1000m
memory: 1Gi

2. Skalierungsmethode wählen

Hikube bietet zwei Ansätze zur Definition von Ressourcen:

Option A: resourcesPreset verwenden

Die Presets bieten vordefinierte Ressourcenprofile für verschiedene Anwendungsfälle:

PresetCPUSpeicherAnwendungsfall
nano250m128MiTests, minimale Entwicklung
micro500m256MiEntwicklung, kleine Anwendungen
small1512MiLeichte Anwendungen
medium11GiStandardanwendungen
large22GiModerate Arbeitslasten
xlarge44GiStandard-Produktion
2xlarge88GiIntensive Produktion

Option B: Explizite Ressourcen definieren

Für eine präzise Steuerung definieren Sie direkt die Werte resources.cpu und resources.memory.

Warnung

Wenn das Feld resources definiert ist (explizite CPU und Speicher), wird der Wert von resourcesPreset ignoriert. Die beiden Ansätze schließen sich gegenseitig aus.

3. Option A: resourcesPreset ändern

Um von einem Preset zu einem anderen zu wechseln, verwenden Sie kubectl patch:

kubectl patch mariadb example --type='merge' -p='
spec:
resourcesPreset: medium
'

Oder ändern Sie direkt das Manifest:

mysql-scaled.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: MariaDB
metadata:
name: example
spec:
replicas: 3
size: 10Gi
resourcesPreset: medium
kubectl apply -f mysql-scaled.yaml

4. Option B: Explizite Ressourcen definieren

Für eine feine Ressourcensteuerung geben Sie die CPU- und Speicherwerte direkt an:

kubectl patch mariadb example --type='merge' -p='
spec:
resources:
cpu: 2000m
memory: 4Gi
'

Oder über das vollständige Manifest:

mysql-custom-resources.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: MariaDB
metadata:
name: example
spec:
replicas: 3
size: 10Gi
resources:
cpu: 2000m
memory: 4Gi
kubectl apply -f mysql-custom-resources.yaml
Tipp

Um nach der Verwendung expliziter Ressourcen zu einem Preset zurückzukehren, entfernen Sie das Feld resources und definieren Sie resourcesPreset in Ihrem Manifest.

Überprüfung

Verfolgen Sie das Rolling Update der MySQL-Pods:

kubectl get pods -w | grep mysql-example

Erwartetes Ergebnis:

mysql-example-0   1/1     Running   0   5m
mysql-example-1 1/1 Running 0 3m
mysql-example-2 1/1 Running 0 1m

Überprüfen Sie, dass die neuen Ressourcen korrekt angewendet wurden:

kubectl get mariadb example -o yaml | grep -A 5 -E "resources:|resourcesPreset"
Hinweis

Die vertikale Skalierung verursacht ein Rolling Update der Pods. Die Replikas werden nacheinander neu gestartet, um die Auswirkungen auf die Verfügbarkeit zu minimieren. Während dieses Prozesses bleibt der Cluster über die bereits aktualisierten Replikas zum Lesen zugänglich.

Weiterführende Informationen

  • API-Referenz: Vollständige Liste der Presets und Ressourcenparameter