文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、安装etcdctl
- 1.1 查看etcd版本
- 1.2 下载etcdctl并安装
- 二、备份etcd
- 2.1 备份命令
- 2.2 查看备份
- 三、回复备份etcd
- 3.1 恢复备份注意事项
- 3.2 恢复命令
- 总结
前言
环境是通过kubeadm安装的集群,etcd是以容器的方式运行的,如果是二进制安装是备份方式类似。
Kubernetes 所有集群数据的都保存在etcd上.
所有Kubernetes对象都存储在etcd上。定期备份etcd群集数据对于在灾难场景下恢复Kubernetes群集非常重要,例如丢失所有控制平面节点。快照文件包含所有Kubernetes状态和关键信息。为了保证敏感Kubernetes数据的安全,请对快照文件进行加密。
提示:以下是本篇文章正文内容,下面案例可供参考
一、安装etcdctl 1.1 查看etcd版本 1.2 下载etcdctl并安装https://github.com/etcd-io/etcd/releases/tag/v3.5.0
下载 etcd-v3.5.0-linux-amd64.tar.gz
- 安装
[root@master1 ~]# tar -zxvf etcd-v3.5.0-linux-amd64.tar.gz [root@master1 ~]# cp etcd-v3.5.0-linux-amd64/etcdctl /usr/bin [root@master1 ~]# etcdctl version etcdctl version: 3.5.0 API version: 3.5二、备份etcd 2.1 备份命令
- 命令如下
[root@master1 ~]# ETCDCTL_API=3 etcdctl --endpoints 192.168.50.230:2379 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt snapshot save /opt/etcd-123.db2.2 查看备份
代码如下(示例):
[root@master1 ~]# ETCDCTL_API=3 etcdctl --endpoints 192.168.50.230:2379 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt --write-out=table snapshot status /opt/etcd-123.db三、回复备份etcd 3.1 恢复备份注意事项
如果集群中正在运行任何apiserver,则不应尝试还原etcd实例。相反,请按照以下步骤恢复etcd:
- 停止所有APIserver实例
- 恢复所有etcd数据库的状态
- 重新启动所有APIserver
恢复数据库之后建议重启组件kube-scheduler、kube-controller-manager、kubelet,减少组件依赖倒置数据出错的情况。
3.2 恢复命令[root@master1 ~]# ETCDCTL_API=3 etcdctl --endpoints 192.168.50.230:2379 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt snapshot restore /opt/etcd-123.db
总结
参考来源于官方文档
https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/



