电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

etcd备份与恢复

来源:金蝶云社区作者:金蝶2024-09-231

etcd备份与恢复

etcd介绍

Etcd是 Kubernetes的关键组件,因为它存储了集群的整个状态:其配置,规格以及运行中的工作负载的状态。常见问题etcd数据损坏,Kubernetes组件会不断重启,检查etcd容器日志确认异常无法启动导致。本文介绍使用苍穹安装器部署环境的etcd的备份与恢复。

etcd关乎k8s的正常运行,请谨慎操作

备份与恢复

1.部署etcdctl

备份还原都需要etcd客户端,容器化部署的可以直接从etcd容器中拷贝出来:在k8smaster节点找到etcd容器,使用docker cp执行拷贝到宿主机,或者直接执行以下语句。

上传图片

docker cp $(docker ps  | grep etcd | grep -v pause | head -1 |awk '{print $1}'):/usr/local/bin/etcdctl /usr/local/bin/

此处不能使用kubectl cp,官方 etcd 镜像并没有 tar 命令,所以执行会报错

执行后可以使用etcdctl指令,以下备份还原需要使用到,同时也可以查询集群状态等,可以自行查找资料学习。

etcdctl  --cluster --cert=/etc/kubernetes/pki/etcd/server.crt --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key  endpoint status -w table

上传图片

2.备份etcd

执行命令,备份etcd数据,集群下在某个master节点备份即可

ETCDCTL_API=3 etcdctl --endpoints="https://127.0.0.1:2379"  --cert="/etc/kubernetes/pki/etcd/server.crt"  --key="/etc/kubernetes/pki/etcd/server.key"  --cacert="/etc/kubernetes/pki/etcd/ca.crt"   snapshot save /kingdee/etcd_bak/backup.db
  • ETCDCTL_API=3,使用Etcd的v3版本的API,从k8s 1.13开始,k8s不再支持v2版本的etcd

  • endponits可以通过命令在etcd容器中查找,一般会有两个IP使用任一即可:kubectl describe pod etcd-centos -n kube-system | grep listen-client-urls

  • /kingdee/etcd_bak/backup.db #备份完成后的数据,对应路径需要提前建立

上传图片

3.恢复etcd

1.单机恢复

恢复前,需要先停止kube-apiserver和etcd,否则这2组件会不断重启。

#将manifests和etcd目录先改个名字,apiserver和etcd自然就停止了
mv /etc/kubernetes/manifests   /etc/kubernetes/manifests.bak
mv /kingdee/k8s/etcd /kingdee/k8s/etcd.bak
mkdir /kingdee/k8s/etcd

示例中安装路径选择的是/kingdee,那么etcd路径就是/kingdee/k8s/etcd

执行命令,修改路径为现场正确值

etcd备份与恢复

etcd介绍Etcd是 Kubernetes的关键组件,因为它存储了集群的整个状态:其配置,规格以及运行中的工作负载的状态。常见问题etcd数据损坏,Ku...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信