当前位置:   article > 正文

傻瓜化备份/恢复K8S集群Etcd数据

傻瓜化备份/恢复K8S集群Etcd数据

前言:

       备份重要数据,简化重复操作,让一指禅、点点点也能完成运维任务。

       脚本呈现界面如下:

1、查看Etcd版本

  1. root@master:~# cat /etc/kubernetes/manifests/etcd.yaml | grep image: | awk '{print $2}'
  2. registry.aliyuncs.com/google_containers/etcd:3.5.10-0

2、下载安装Etcd操作命令etcdctl

  1. #下载etcdctl
  2. root@master:~# wget https://github.com/etcd-io/etcd/releases/download/v3.5.10/etcd-v3.5.10-linux-amd64.tar.gz
  3. root@master:~#
  4. #解压缩
  5. root@master:~# tar -zxvf etcd-v3.5.10-linux-amd64.tar.gz
  6. root@master:~#
  7. #移进可执行程序目录
  8. root@master:~# sudo mv etcd-v3.5.10-linux-amd64/etcdctl /usr/bin/
  9. root@master:~# sudo mv etcd-v3.5.10-linux-amd64/etcdutl /usr/bin/
  10. root@master:~#
  11. #查看一下etcdctl版本
  12. root@master:~# etcdctl
  13. NAME:
  14. etcdctl - A simple command line client for etcd3.
  15. USAGE:
  16. etcdctl [flags]
  17. VERSION:
  18. 3.5.10
  19. API VERSION:
  20. 3.5
  21. #创建备份目录
  22. root@master:~# mkdir -p /data/backup/file

3、Etcd数据备份/恢复脚本

  1. #!/bin/bash
  2. #AUTHOR : Created by YaoButing
  3. #PLATFORM : Ubuntu 20.04.6 LTS (Focal Fossa)
  4. #VERSION : 1.0
  5. #DATE : 2024-05-06
  6. #DESCRIPTION : This script is used to muanual backup/restore etcd data.
  7. ###############################################################################
  8. NUMBER=100
  9. while (($NUMBER>0))
  10. do
  11. echo " "
  12. echo " 请选择需要执行的操作 "
  13. echo "********************************************************************"
  14. echo "* *"
  15. echo "* [ 1 ]. Etcd数据备份 [ 2 ]. Etcd数据恢复 *"
  16. echo "* *"
  17. echo "********************************************************************"
  18. echo "* 按 0 推出脚本 *"
  19. read -p "请输入将要执行的动作序号:" NUMBER
  20. echo " "
  21. echo " "
  22. if (($NUMBER==1))
  23. then
  24. echo "###########-- 1 --########### 开始备份Etcd数据 ###############"
  25. echo " "
  26. ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
  27. --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  28. --cert=/etc/kubernetes/pki/etcd/server.crt \
  29. --key=/etc/kubernetes/pki/etcd/server.key \
  30. snapshot save /data/backup/etcd-snapshot-`date "+%Y-%m-%d"`.db
  31. echo ""
  32. echo "###########-- 1 --############ Etcd数据备份完毕 ##############"
  33. echo " "
  34. echo "###########-- 1 --############ 验证Etcd快照 ##################"
  35. echo " "
  36. ETCDCTL_API=3 etcdctl --write-out=table snapshot status /data/backup/etcd-snapshot-`date "+%Y-%m-%d"`.db
  37. echo " "
  38. elif (($NUMBER==2))
  39. then
  40. echo "###########-- 2 --########### 下面是现有的Etcd备份文件 ########"
  41. ls /data/backup/ | sort -k 2 | nl
  42. ls /data/backup/ | sort -k 2 > /data/backup/file/file.txt
  43. read -p "#####-----------请输入要恢复的Etcd备份文件行号:" DB
  44. etcdfile=$(sed -n "${DB}p" /data/backup/file/file.txt)
  45. echo ""
  46. echo "创建恢复目录'/var/lib/etcd-restore'"
  47. mkdir /opt/backup
  48. mkdir /var/lib/etcd-restore
  49. mv /etc/kubernetes/manifests/kube* /opt/backup/
  50. ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
  51. --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  52. --cert=/etc/kubernetes/pki/etcd/server.crt \
  53. --key=/etc/kubernetes/pki/etcd/server.key \
  54. --data-dir=/var/lib/etcd-restore \
  55. snapshot restore /data/backup/$etcdfile
  56. cp /opt/backup/* /etc/kubernetes/manifests/
  57. mv /etc/kubernetes/manifests/etcd.yaml /etc/kubernetes/manifests/bak.etcd.yaml
  58. sed 's!/var/lib/etcd!/var/lib/etcd-restore!' /etc/kubernetes/manifests/bak.etcd.yaml > /etc/kubernetes/manifests/etcd.yaml
  59. cat /etc/kubernetes/manifests/etcd.yaml | grep '/var/lib/etcd-restore'
  60. systemctl daemon-reload
  61. systemctl restart kubelet
  62. echo ""
  63. echo "###########-- 2 --########### Etcd数据恢复结束 ################"
  64. echo ""
  65. echo "数据恢复已结束,但仍需等待几分钟再进行查看验证..."
  66. elif (($NUMBER==0))
  67. then
  68. echo "###########--- 程序即将退出 ---######################"
  69. else
  70. echo "########--- 输入错误,请按照指定序号输入 --------############"
  71. fi
  72. done

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/564845
推荐阅读
相关标签
  

闽ICP备14008679号