Skip to content

RKE2 Snapshot: Backup e Ripristino di etcd

In un cluster RKE2 con datastore embedded, etcd conserva lo stato del cluster Kubernetes: nodi, risorse, secret, configurazioni e oggetti applicativi. Gli snapshot servono a proteggere questo stato e sono fondamentali prima di manutenzioni importanti, upgrade o modifiche infrastrutturali.

Panoramica

RKE2 integra la gestione degli snapshot di etcd tramite il comando rke2 etcd-snapshot. Gli snapshot possono essere automatici, se configurati nel servizio RKE2, oppure manuali, quando si vuole creare un punto di ripristino prima di un intervento specifico.

Architettura

Nel caso di cluster con control plane multipli, ogni nodo server partecipa alla gestione dello stato. Lo snapshot deve essere trattato come un backup critico: va salvato, copiato fuori dal nodo e protetto come materiale sensibile.

Schema dell'architettura Kubernetes

Creazione di uno snapshot

Per creare uno snapshot manuale da un nodo server RKE2:

sudo rke2 etcd-snapshot save --name snapshot-pre-upgrade

Gli snapshot vengono salvati di default nella directory:

/var/lib/rancher/rke2/server/db/snapshots/

Per verificarne la presenza:

sudo ls -lh /var/lib/rancher/rke2/server/db/snapshots/

Backup esterno

Dopo la creazione, lo snapshot non dovrebbe restare solo sul nodo. E' buona pratica copiarlo verso uno storage esterno o un repository di backup:

sudo rsync -av /var/lib/rancher/rke2/server/db/snapshots/ backup-user@backup-host:/backup/rke2/

In ambienti produttivi conviene affiancare agli snapshot locali una retention automatica e una copia remota cifrata.

Ripristino a grandi linee

Il restore di etcd e' un'operazione delicata e va pianificata a cluster fermo o in procedura di disaster recovery. A livello generale, il flusso prevede:

  1. Fermare i servizi RKE2 sui nodi coinvolti.
  2. Selezionare uno snapshot valido e coerente.
  3. Avviare il restore dal nodo server principale.
  4. Riagganciare o ricostruire gli altri nodi server.
  5. Verificare API Server, nodi e risorse applicative.

Verifica

Dopo un backup o un ripristino, controllare lo stato del cluster:

sudo systemctl status rke2-server
kubectl get nodes
kubectl get pods -A

Considerazioni operative

  • Sicurezza: gli snapshot possono contenere secret e configurazioni sensibili.
  • Affidabilita: testare periodicamente la procedura di restore in un ambiente non produttivo.
  • Manutenzione: creare uno snapshot manuale prima di upgrade, rotazioni certificate o modifiche al control plane.