k8s学习-CKA真题-Etcd数据库备份恢复

Posted lady_killer9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s学习-CKA真题-Etcd数据库备份恢复相关的知识,希望对你有一定的参考价值。

目录


题目

解析

针对存在的etcd实例https://127.0.0.1:2379,创建一个快照,保存到/srv/data/etcd-snapshot.db。在创建快照的过程中,如果卡住了,就键入ctrl+c终止,然后重试。
然后恢复一个已经存在的快照: /var/lib/backup/etcd-snapshot-previous.db
执行etcdctl命令的证书存放在:
ca证书:/opt/KUIN00601/ca.crt
客户端证书:/opt/KUIN00601/etcd-client.crt
客户端密钥:/opt/KUIN00601/etcd-client.key

本次实验时就不复制,使用本地的路径了,可以查看配置文件(我的是kubeadm安装的集群):

- --cert-file=/etc/kubernetes/pki/etcd/server.crt
- --key-file=/etc/kubernetes/pki/etcd/server.key
- --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt

命令

环境搭建

安装etcdctl
敲一下etcdctl,没有的话会提示安装命令,安装后查看一下是否成功

解题

操作前先设置环境变量

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

参考

k8s - 为 Kubernetes 运行 etcd 集群

以上是关于k8s学习-CKA真题-Etcd数据库备份恢复的主要内容,如果未能解决你的问题,请参考以下文章

k8s学习-CKA真题-集群故障排查kubelet

k8s学习-CKA真题-集群故障排查kubelet

k8s集群维护----etcd数据库备份与恢复------k8s版本升级

k8s学习-CKA真题-Deployment扩缩容

k8s学习-CKA真题-Deployment扩缩容

k8s学习-CKA真题-sidecar代理