Snapshots
Automatisch an by default:
etcd-snapshot-schedule-cron (Default alle 12h),
etcd-snapshot-retention (Default 5, je Server-Node).
Ablage: /var/lib/rancher/rke2/server/db/snapshots.
Off-node nach S3 sichern, sonst ist der Snapshot
mit dem Node verloren. etcd-s3-retention (Default 5)
zählt clusterweit je Bucket/Ordner. Alle Snapshots im Cluster:
kubectl get etcdsnapshotfile.
# config.yaml (alle Server): Snapshots nach S3 etcd-s3: true etcd-s3-endpoint: s3.example.com etcd-s3-bucket: rke2-snapshots etcd-s3-access-key: <key> etcd-s3-secret-key: <secret>
rke2 etcd-snapshot save --name pre-upgrade rke2 etcd-snapshot ls # Restore (auf EINEM Server, andere vorher stoppen): systemctl stop rke2-server rke2 server \ --cluster-reset \ --cluster-reset-restore-path=/var/lib/rancher/rke2/server/db/snapshots/pre-upgrade-<node>-<ts> systemctl start rke2-server
Restore-Ablauf
Restore läuft auf einem Server, alle anderen
Server werden gestoppt und ihr db/-Verzeichnis
geleert; danach re-joinen sie den zurückgesetzten Cluster
über server: + token.
Mit etcd-s3 in der Config nur den Dateinamen angeben,
für lokale Snapshots --etcd-s3=false setzen. Ohne
den ursprünglichen token kein Restore:
server/token sichern, auf neuem Host mit
--token=<Wert> starten.
Quorum verloren (2 von 3 Servern weg):
--cluster-reset ohne Restore-Pfad auf dem
verbliebenen Server setzt etcd auf dieses Mitglied zurück, ohne
Snapshot. Übrige Server danach leeren und neu joinen.