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

Come configurare l'alta disponibilità Redis

Questa guida spiega come distribuire un cluster Redis ad alta disponibilità su Hikube. Il servizio si basa sull'operatore Spotahome Redis Operator che utilizza Redis Sentinel per assicurare il failover automatico quando sono configurate 3 o più repliche.

Prerequisiti

  • kubectl configurato per interagire con l'API Hikube
  • Conoscenza delle basi di Redis (vedere l'avvio rapido)
  • Un ambiente di produzione che necessità di alta disponibilità

Passaggi

1. Configurare il manifesto con 3+ repliche

Per attivare l'alta disponibilità, configurate almeno 3 repliche. Redis Sentinel viene automaticamente distribuito dall'operatore Spotahome per orchestrare l'elezione del leader e il failover:

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

Il storageClass: replicated garantisce che i volumi persistenti siano replicati a livello di storage, proteggendo i dati contro la perdita di un nodo fisico.

2. Applicare la configurazione

kubectl apply -f redis-ha.yaml

3. Verificare il cluster Redis

Attendete che tutti i pod siano pronti:

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

Risultato atteso:

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

Verificate anche lo stato di Redis Sentinel:

# Verificare i pod Sentinel
kubectl get pods -l app.kubernetes.io/component=sentinel,app.kubernetes.io/instance=my-redis-ha

4. Comprendere il failover automatico

Con 3 repliche, Redis Sentinel assicura le seguenti funzioni:

  • Rilevamento guasti: Sentinel sorveglia continuamente il nodo master e le repliche
  • Elezione automatica: se il master cade, Sentinel elegge un nuovo master tra le repliche disponibili
  • Riconfigurazione: le repliche rimanenti vengono automaticamente riconfigurate per replicare dal nuovo master
suggerimento

Il failover è completamente automatico. Nessun intervento manuale è necessario. Il tempo di commutazione e generalmente di pochi secondi.

5. Recuperare la password

Con authEnabled: true, una password viene generata automaticamente e memorizzata in un Secret Kubernetes:

# Recuperare il nome del secret
kubectl get secrets | grep my-redis-ha

# Estrarre la password
kubectl get secret my-redis-ha -o jsonpath='{.data.password}' | base64 -d
avviso

Attivate sempre authEnabled: true in produzione. Senza autenticazione, qualsiasi applicazione con accesso alla rete del cluster può leggere e scrivere in Redis.

Verifica

Verificate che il cluster HA funzioni correttamente:

# Verificare la risorsa Redis
kubectl get redis my-redis-ha

# Verificare che tutti i pod siano Running
kubectl get pods -l app.kubernetes.io/instance=my-redis-ha

# Verificare i servizi esposti
kubectl get svc -l app.kubernetes.io/instance=my-redis-ha

Risultato atteso:

NAME                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)     AGE
my-redis-ha ClusterIP 10.96.xxx.xxx <none> 6379/TCP 5m
my-redis-ha-sentinel ClusterIP 10.96.xxx.xxx <none> 26379/TCP 5m

Per approfondire