With regard to saving/restoring a snapshot, I usually do the following (on my local node, not master):
ETCDCTL_API=3 etcdctl --endpoints="https://127.0.0.1:2379" --cacert=/opt/local/ca.crt --cert=/opt/local/etcd-client.crt --key=/opt/local/etcd-client.key snapshot save /etc/data/etcd-snapshot.db
In the docs, there are two options for restoring.
https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#built-in-snapshot
The first is this:
ETCDCTL_API=3 etcdctl --data-dir <data-dir-location> snapshot restore snapshotdb
...which is fine if etcd is on the your master so you could copy the snapshot restore dir to master and update the etcd.yaml with the new path so it starts to use the new backup.
The second option is this:
ETCDCTL_API=3 etcdctl --endpoints="https://127.0.0.1:2379" --cacert=/opt/local/ca.crt --cert=/opt/local/etcd-client.crt --key=/opt/local/etcd-client.key snapshot restore /etc/data/etcd-snapshot.db
I assumed that if we use --endpoints and URL and include the certs, it would update the ETCD DB directly but this doesn't seem to be the case as the command runs OK but ETCD isn't restored with previous data.
Would really appreciate any guideance, can't seem to find an answer online as there's so much on the topic and so many different options.
Regards,