Skip to content

Jak zrobić snapshot etcd?

Możemy zrobić snapshot całej zawartości bazy danych etcd:

etcdctl snapshot save <nazwa_snapshota>.db

lub gdy skonfigurowane są klucze CA:

etcdctl snapshot save <nazwa_snapshota>.db \
--endpoint=https://<adres_ip_klastra>:2379 \
--cacert=<katalog_z_certami>/ca.crt \
--cert=<katalog_z_certami>/etcd-server.crt \
--key=<katalog_z_certami>/etcd-server.key

Tutaj przykładowe wywołanie:

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
snapshot save /opt/snapshot.db

Jak sprawdzić status pobranego backupu?

etcdctl snapshot status <nazwa_snapshota>.db

Jak przywrócić konfigurację klastra z etcd?

Zawartość bazy danych etcd przywracamy w następujący sposób:

Stopujemy kube-apiserver (robimy to na Control-Plane):

systemctl stop kube-apiserver

Odtwarzamy snapshot konfiguracji klastra, tworzymy od razu nowy katalog z danymi:

etcdctl snapshot restore <nazwa_snapshota>.db --data-dir /var/lib/<nazwa_katalogu>

Warning

Należy uwzględnić nowy katalog przy uruchamianiu etcd

Odtwarzanie snapshota, gdy etcd uruchomione jest jako serwis systemd

Zmieniamy konfigurację serwisu etcd.service

systemctl edit etcd.service

Wprowadzamy zmiany, restartujemy konfigurację serwisu:

systemctl daemon-reload

Restartujemy etcd:

systemctl restart etcd

Uruchamiamy kube-apiserver:

systemctl start kube-apiserver