K8S认证|CKA题库+答案| 15. 备份还原Etcd

目录

[15、 备份还原Etcd](#15、 备份还原Etcd)

[CKA v1.29.0模拟系统 下载试用](#CKA v1.29.0模拟系统 下载试用)

题目:

开始操作:

1)、切换集群

2)、登录master并提权

3)、备份Etcd现有数据

4)、验证备份数据快照

5)、查看节点和Pod状态

6)、创建目录

​7)、执行Etcd数据恢复命令

8)、验证恢复情况

​9)、更改Etcd配置

10)、重启kubelet

11)、对比验证

​12)、退回node01


15、 备份还原Etcd

CKA v1.29.0模拟系统 下载试用

题目:

您必须在以下Cluster/Node上完成此考题:

Cluster Master node Worker node

k8s master node01

.

设置配置环境:

[candidate@node01]$ kubectl config use-context k8s

.

Context

Etcd数据库备份与还原

.

Task
首先,为运行在 https://127.0.0.1:2379 上的现有 etcd 实例创建快照并将快照保存到
/var/lib/backup/etcd-snapshot.db
.
为给定实例创建快照预计能在几秒钟内完成。 如果该操作似乎挂起,则命令可能有问题。用 CTRL + C 来取消 操作,然后重试.
.
然后还原位于以下位置的现有先前快照。 /data/backup/etcd-snapshot-previous.db
提供了以下TLS证书和密钥,以通过 etcdctl 连接到服 务器。
.
• CA 证书: /opt/KUIN00601/ca.crt
• 客户端证书: /opt/KUIN00601/etcd-client.crt
• 客户端密钥: /opt/KUIN00601/etcd-client.key

开始操作:

1)、切换集群

bash 复制代码
# 考试时有多套集群环境,以免答题环境相互干扰。
# 所以考试时务必按照题目要求先切换到所对应的集群环境,才是正确答题的前提,非常重要
# 请务必确认现在所处节点为node01,否则无法切换集群而报错
kubectl config use-context k8s

2)、登录master并提权

有些人较劲说题目没有说让登录master,然后在node01一顿操作,我只能说总得登录master看Etcd配置文件吧,考试的时候千万别较劲

bash 复制代码
ssh master
sudo -i

CKA模拟环境操作截图:

3)、备份Etcd现有数据

bash 复制代码
#执行ETCD备份
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \       #备份指定节点服务器
--cacert=/opt/KUIN00601/ca.crt \
--cert=/opt/KUIN00601/etcd-client.crt \
--key=/opt/KUIN00601/etcd-client.key \
snapshot save /var/lib/backup/etcd-snapshot.db                   #备份数据文件存放位置

CKA模拟环境操作截图:

4)、验证备份数据快照

bash 复制代码
ETCDCTL_API=3 etcdctl --write-out=table snapshot status /var/lib/backup/etcd-snapshot.db

CKA模拟环境操作截图:

5)、查看节点和Pod状态

下面我们开始进行Etcd数据还原,开始前我们先执行查看节点和Pod运行状态命令(此步骤非必须,只是练习时与数据恢复后进行状态对比,便于大家理解):

bash 复制代码
kubectl get node
kubectl get pod -A

CKA模拟环境Etcd数据恢复之前状态截图,第二题cpu-top三个Pod是存在的:

6)、创建目录

数据恢复过程中需要用到的目录

bash 复制代码
mkdir /opt/backup                                   #创建系统配置文件备份目录
mkdir /var/lib/etcd-restore                         #创建ETCD数据恢复目录
mv /etc/kubernetes/manifests/kube* /opt/backup/     #将系统配置文件移动至此目录,即官网所述停止所有API实例

CKA模拟环境操作截图:

7)、执行Etcd数据恢复命令

bash 复制代码
#ETCD还原
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/opt/KUIN00601/ca.crt \
--cert=/opt/KUIN00601/etcd-client.crt \
--key=/opt/KUIN00601/etcd-client.key \
--data-dir=/var/lib/etcd-restore \                             #指定恢复的数据目录
snapshot restore /data/backup/etcd-snapshot-previous.db        #将要恢复的备份数据

CKA模拟环境操作截图:

8)、验证恢复情况

bash 复制代码
#查看数据恢复情况
ls /var/lib/etcd-restore
#将系统配置文件复制回系统配置目录,为K8S所有API实例重启做准备
cp /opt/backup/* /etc/kubernetes/manifests/

CKA模拟环境操作截图:

9)、更改Etcd配置

bash 复制代码
#备份etcd配置文件,之所以bak放在前面使因为实际测试时发现bak放在后面有时会导致系统还会默认使用原先的配置文件,或者直接将备份配置文件移除原目录
mv /etc/kubernetes/manifests/etcd.yaml /etc/kubernetes/manifests/bak.etcd.yaml
#替换原有配置路径并生成新的etcd.yaml配置文件
sed 's!/var/lib/etcd!/var/lib/etcd-restore!'  /etc/kubernetes/manifests/bak.etcd.yaml > /etc/kubernetes/manifests/etcd.yaml
#检查搜索是否有为替换配置
cat /etc/kubernetes/manifests/etcd.yaml | grep '/var/lib/etcd'
#检查搜索已替换配置项
cat /etc/kubernetes/manifests/etcd.yaml | grep '/var/lib/etcd-restore'

10)、重启kubelet

bash 复制代码
#重启 kubelet
systemctl daemon-reload
systemctl restart kubelet

CKA模拟环境操作截图:

11)、对比验证

命令执行完毕,等待差不多五分钟再次执行查看节点和Pod状态命令,以下截图为数据恢复完毕后查看状态,比数据恢复之前明显少了三个命名空间为cpu-top的三个Pod

12)、退回node01

操作完成,然后执行两次exit退出master,检查主机名称进行确认

bash 复制代码
exit                             #退出提权状态
exit                             #退出master主机

CKA模拟环境操作截图


CKA仿真模拟环境简短演示

相关推荐
march of Time44 分钟前
docker容器技术、k8s的原理和常见命令、用k8s部署应用步骤
docker·容器·kubernetes
YCyjs1 小时前
云计算【第一阶段(27)】DHCP原理与配置以及FTP的介绍
linux·运维·服务器·云计算
新手小新1 小时前
关于新装Centos7无法使用yum下载的解决办法
linux·运维·centos
CodeWithMe1 小时前
【计算机】同步/异步
linux
Peterpan000001 小时前
玄机——第五章 linux实战-黑链 wp
linux·运维·服务器·网络安全·安全威胁分析
板栗妖怪1 小时前
docker安装以及简单使用
docker·容器
xuyanqiangCode1 小时前
八、Linux二进制安装Kafka集群
linux·运维·kafka
乐之者v2 小时前
k8s 常用的命令
云原生·容器·kubernetes
临桥2 小时前
firewalld 高级配置
linux·服务器·网络
a未来永远是个未知数2 小时前
构建机部署之git安装(Linux)
linux·git·elasticsearch