Last active
February 19, 2021 02:29
Star
You must be signed in to star a gist
OCP 4.6.1 ETCD Backup Shell Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
healthy=$(oc get etcd -o=jsonpath='{range .items[0].status.conditions[?(@.type=="EtcdMembersAvailable")]}{.message}{"\n"}') | |
if [ "$healthy" != "3 members are available" ]; then | |
echo "check to see if something is broken" | |
exit 1 | |
fi | |
if [ ! -d ./backup ]; then mkdir ./backup; fi | |
backupdir=$(mktemp -dt "backup.XXXXXXXX" --tmpdir=./backup) | |
# get etcd's node name | |
etcd_node=`oc get pods -n openshift-etcd -l app=etcd -o=jsonpath='{.items[0].spec.nodeName}'` | |
# use ssh to remove old backup, take new backup, copy it off. | |
ssh -i ~/.ssh/dmz-ocp4-rsa core@$etcd_node 'sudo -E rm ./assets/backup/*' | |
ssh -i ~/.ssh/dmz-ocp4-rsa core@$etcd_node 'sudo -E /usr/local/bin/cluster-backup.sh ./assets/backup' | |
ssh -i ~/.ssh/dmz-ocp4-rsa core@$etcd_node 'sudo -E chmod 644 ./assets/backup/*' | |
scp -i ~/.ssh/dmz-ocp4-rsa core@$etcd_node:/home/core/assets/backup/* $backupdir |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# root @ bastion.dmz.ocp4.local in ~/etcd_backup | |
$ ./backup.sh | |
17c4a1a1ba014fafa8427b777ee771b64da8583fdb7dfe4557854aaf2fb4b20a | |
etcdctl version: 3.4.9 | |
API version: 3.4 | |
found latest kube-apiserver-pod: /etc/kubernetes/static-pod-resources/kube-apiserver-pod-6 | |
found latest kube-controller-manager-pod: /etc/kubernetes/static-pod-resources/kube-controller-manager-pod-8 | |
found latest kube-scheduler-pod: /etc/kubernetes/static-pod-resources/kube-scheduler-pod-7 | |
found latest etcd-pod: /etc/kubernetes/static-pod-resources/etcd-pod-3 | |
{"level":"info","ts":1613700224.3697655,"caller":"snapshot/v3_snapshot.go:119","msg":"created temporary db file","path":"./assets/backup/snapshot_2021-02-19_020343.db.part"} | |
{"level":"info","ts":"2021-02-19T02:03:44.378Z","caller":"clientv3/maintenance.go:200","msg":"opened snapshot stream; downloading"} | |
{"level":"info","ts":1613700224.378489,"caller":"snapshot/v3_snapshot.go:127","msg":"fetching snapshot","endpoint":"https://192.168.76.1:2379"} | |
{"level":"info","ts":"2021-02-19T02:03:45.195Z","caller":"clientv3/maintenance.go:208","msg":"completed snapshot read; closing"} | |
{"level":"info","ts":1613700225.3950655,"caller":"snapshot/v3_snapshot.go:142","msg":"fetched snapshot","endpoint":"https://192.168.76.1:2379","size":"78 MB","took":1.025246878 | |
} | |
{"level":"info","ts":1613700225.3956022,"caller":"snapshot/v3_snapshot.go:152","msg":"saved","path":"./assets/backup/snapshot_2021-02-19_020343.db"} | |
Snapshot saved at ./assets/backup/snapshot_2021-02-19_020343.db | |
snapshot db and kube resources are successfully saved to ./assets/backup | |
snapshot_2021-02-19_020343.db 100% 74MB 80.0MB/s 00:00 | |
static_kuberesources_2021-02-19_020343.tar.gz 100% 65KB 40.1MB/s 00:00 | |
# root @ bastion.dmz.ocp4.local in ~/etcd_backup | |
$ | |
# root @ bastion.dmz.ocp4.local in ~/etcd_backup | |
$ ls -la ./backup/backup.SQziqAum | |
total 75764 | |
drwx------. 2 root root 96 Feb 19 10:04 . | |
drwxr-xr-x. 3 root root 29 Feb 19 10:04 .. | |
-rw-r--r--. 1 root root 77508640 Feb 19 10:04 snapshot_2021-02-19_020343.db | |
-rw-r--r--. 1 root root 66111 Feb 19 10:04 static_kuberesources_2021-02-19_020343.tar.gz |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment