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

Come scalare verticalmente Redis

Questa guida spiega come regolare le risorse CPU, memoria e archiviazione della vostra istanza Redis su Hikube, sia tramite un preset predefinito, sia definendo valori espliciti.

Prerequisiti

  • Un'istanza Redis distribuita su Hikube (vedere l'avvio rapido)
  • kubectl configurato per interagire con l'API Hikube
  • Il file YAML di configurazione della vostra istanza Redis

Passaggi

1. Verificare le risorse attuali

Consultate la configurazione attuale della vostra istanza Redis:

kubectl get redis my-redis -o yaml

Annotate i valori di resourcesPreset, resources, replicas e size nella sezione spec.

2. Opzione A: Modificare il resourcesPreset

Il modo più semplice per scalare e usare un preset predefinito. Ecco i preset disponibili:

PresetCPUMemoria
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Ad esempio, per passare da nano a medium:

redis-medium.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: my-redis
spec:
replicas: 2
resourcesPreset: medium
size: 2Gi
authEnabled: true

3. Opzione B: Definire risorse esplicite

Per un controllo preciso, specificate direttamente CPU e memoria con il campo resources:

redis-custom-resources.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: my-redis
spec:
replicas: 2
resources:
cpu: 2000m
memory: 4Gi
size: 5Gi
authEnabled: true
avviso

Se il campo resources e definito, il valore di resourcesPreset viene completamente ignorato. Rimuovete resourcesPreset dal manifesto per evitare confusione.

4. Regolare il numero di repliche se necessario

Potete anche aumentare il numero di repliche per distribuire il carico di lettura:

redis-scaled.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: my-redis
spec:
replicas: 3
resourcesPreset: large
size: 5Gi
storageClass: replicated
authEnabled: true

5. Applicare l'aggiornamento

kubectl apply -f redis-medium.yaml
suggerimento

Redis e un data store in-memory: la memoria allocata (resources.memory o quella del preset) deve essere sufficiente a contenere l'intero dataset. Monitorate l'utilizzo della memoria prima di scalare.

Verifica

Verificate che le risorse siano state aggiornate:

# Verificare la configurazione della risorsa Redis
kubectl get redis my-redis -o yaml | grep -A 5 resources

# Verificare lo stato dei pod Redis
kubectl get pods -l app.kubernetes.io/instance=my-redis

Risultato atteso:

NAME              READY   STATUS    RESTARTS   AGE
my-redis-0 1/1 Running 0 2m
my-redis-1 1/1 Running 0 2m

Per approfondire