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数据
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 restore /kingdee/etcd_bak/backup.db --data-dir=/kingdee/k8s/etcd
最后,恢复manifests,组件会自动重启,稍等一下就可以验证是否恢复正常。
mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
2.集群恢复
集群的恢复操作和单机一致,不同点在于必须所有节点都需要拷贝同一个backup.db再恢复etcd数据,恢复命令:
ETCDCTL_API=3 etcdctl snapshot restore /kingdee/etcd_bak/backup.db --data-dir=/kingdee/k8s/etcd --name=etcd1 --initial-cluster-token="etcd-cluster" --initial-advertise-peer-urls=https://192.168.118.180:2380 --initial-cluster="etcd1=https://192.168.118.180:2380,etcd2=https://192.168.118.190:2380,etcd3=https://192.168.118.200:2380"
name:etcd节点名,苍穹安装的默认为计算机名,此处并不强制要求使用默认值,只要和后面initial-cluster参数对应上即可,注意3台机器的执行的命令中name是不一样的
initial-advertise-peer-urls:在集群中自己标明的访问地址
initial-cluster:每个节点的访问地址,注意格式为etcd节点名=https://k8s宿主机ip:2380
etcd备份与恢复
本文2024-09-23 01:12:49发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144502.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf