2024年网安最全k8s学习-CKA真题-Etcd数据库备份恢复_etcd snapshot save 卡主

本文详细介绍了如何在Kubernetes环境中使用etcdctl进行备份与还原操作,包括设置环境变量、备份与查看状态、还原过程及注意事项,以及二进制安装时的配置管理。作者强调了系统化学习的重要性,并提供了一个技术交流学习社区的链接。
摘要由CSDN通过智能技术生成

在这里插入图片描述

解题

操作前先设置环境变量

export ETCDCTL\_API=3

备份
无参数

etcdctl --endpoints="https://127.0.0.1:2379" snapshot save /srv/data/etcd-snapshot.db

有参数

etcdctl --endpoints="https://127.0.0.1:2379" --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save /srv/data/etcd-snapshot.db

查看状态
无参数

etcdctl --endpoints="https://127.0.0.1:2379" snapshot status /srv/data/etcd-snapshot.db

有参数

etcdctl --endpoints="https://127.0.0.1:2379" --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot status /srv/data/etcd-snapshot.db

还原
还原之前可以删除一个资源,看看一会儿还原后资源是不是恢复了。

创建备份目录

mkdir -p /opt/backup/

移动集群文件,使apiserver等停止

mv /etc/kubernetes/manifests/kube-* /opt/backup

这里我也没有官方的etcd-snapshot-previous.db,就是把前面备份的改了个名字而已

无参数

etcdctl --endpoints="https://127.0.0.1:2379" snapshot restore /var/lib/backup/etcd-snapshot-previous.db --data-dir=/var/lib/etcd-restore

有参数

etcdctl --endpoints="https://127.0.0.1:2379" --endpoints="https://127.0.0.1:2379" --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot restore /var/lib/backup/etcd-snapshot-previous.db --data-dir=/var/lib/etcd-restore

修改配置文件

vim /etc/kubernetes/manifests/etcd.yaml

# 将volume配置的path: /var/lib/etcd改成/var/lib/etcd-restore
  volumes:
  - hostPath:
      path: /etc/kubernetes/pki/etcd
      type: DirectoryOrCreate
    name: etcd-certs
  - hostPath:
      path: /var/lib/etcd-restore

还原k8s组件

mv /opt/backup/* /etc/kubernetes/manifests
systemctl restart kubelet

结果

设置环境变量
在这里插入图片描述
如果配置文件中已经设置,命令行同时设置会有冲突
在这里插入图片描述
去除参数即可
在这里插入图片描述
删除一个pod,方便验证是否还原成功
在这里插入图片描述
还原结果如下图所示:
在这里插入图片描述
修改etcd配置如下图所示
在这里插入图片描述
还原后重启成功截图如下图所示:
在这里插入图片描述
可以看到还原前删除的foolbar

二进制安装时

博主是使用kubeadm安装的k8s,当使用二进制安装时,配置文件位置有所不同,其他一致。
二进制安装时,etcd不再是容器的方式。
查看etcd的配置,使用命令

systemctl status etcd

可以找到–config-file,例如/etc/etcd/etcd.config.yaml

或者使用ps命令查找

ps aux | grep "config.yaml"

模拟环境

题目

Make a backup of etcd running on cluster3-controlplane1 and save it on the controlplane node at /tmp/etcd-backup.db.
Then create a Pod of your kind in the cluster.
Finally restore the backup, confirm the cluster is still working and that the created Pod is no longer with us.

分析

备份运行在cluster3-controlplane1上的etcd,并将其保存在cluster3-controlplane1节点的 /tmp/ectd-backup.db 、上。
然后在集群中创建一个Pod。
最后恢复备份,确认集群仍在工作,并且创建的Pod已不在。

重点还是找到几个文件的位置。

解题

在这里插入图片描述
备份

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值