提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
环境是通过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.db
2.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/