Backup and Restore ETCD


title: “Backup and Restore ETCD”
date: 2020-04-06T13:27:03
slug: backup-and-restore-etcd


Get etcdctl Tool:
https://github.com/etcd-io/etcd/releases/download/v3.4.7/etcd-v3.4.7-linux-amd64.tar.gz

Create a Snapshot

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 /tmp/snapshot-pre-boot.db

Status of Snapshot:

ETCDCTL\_API=3 etcdctl snapshot status /tmp/snapshot-pre-boot.db -w table

Restore ETCD Snapshot to a new folder

ETCDCTL\_API=3 etcdctl snapshot restore -h

ETCDCTL\_API=3 etcdctl \
 --endpoints=https://[127.0.0.1]:2379 \
 --cacert=/etc/kubernetes/pki/etcd/ca.crt \
 --name=master \
 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key \
 --data-dir /var/lib/etcd-from-backup \
 --initial-cluster=master=https://127.0.0.1:2380 \
 --initial-cluster-token etcd-cluster-1 \
 --initial-advertise-peer-urls=https://127.0.0.1:2380 \
 snapshot restore /tmp/snapshot-pre-boot.db

Modify /etc/kubernetes/manifests/etcd.yaml
– –data-dir=/var/lib/etcd-from-backup
– –initial-cluster-token=etcd-cluster-1
– mountPath: /etc/kubernetes/pki/etcd
path: /var/lib/etcd-from-backup

spec:
 containers:
 - command:
 - etcd
 - --advertise-client-urls=https://172.17.0.45:2379
 - --cert-file=/etc/kubernetes/pki/etcd/server.crt
 - --client-cert-auth=true
 - --data-dir=/var/lib/etcd-from-backup
 - --initial-cluster-token=etcd-cluster-1
 - --initial-advertise-peer-urls=https://172.17.0.45:2380
 - --initial-cluster=master=https://172.17.0.45:2380
 - --key-file=/etc/kubernetes/pki/etcd/server.key
 - --listen-client-urls=https://127.0.0.1:2379,https://172.17.0.45:2379
 - --listen-metrics-urls=http://127.0.0.1:2381
 - --listen-peer-urls=https://172.17.0.45:2380
 - --name=master
 - --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
 - --peer-client-cert-auth=true
 - --peer-key-file=/etc/kubernetes/pki/etcd/peer.key
 - --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
 - --snapshot-count=10000
 - --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
.
.
.
 volumeMounts:
 - mountPath: /var/lib/etcd-from-backup
 name: etcd-data
 - mountPath: /etc/kubernetes/pki/etcd
 name: etcd-certs
 hostNetwork: true
 priorityClassName: system-cluster-critical
 volumes:
 - hostPath:
 path: /etc/kubernetes/pki/etcd
 type: DirectoryOrCreate
 name: etcd-certs
 - hostPath:
 path: /var/lib/etcd-from-backup
 type: DirectoryOrCreate
 name: etcd-data
status: {}
Print Friendly, PDF & Email