赞
踩
目录
您必须在以下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
- # 考试时有多套集群环境,以免答题环境相互干扰。
- # 所以考试时务必按照题目要求先切换到所对应的集群环境,才是正确答题的前提,非常重要
- # 请务必确认现在所处节点为node01,否则无法切换集群而报错
- kubectl config use-context k8s
有些人较劲说题目没有说让登录master,然后在node01一顿操作,我只能说总得登录master看Etcd配置文件吧,考试的时候千万别较劲
- ssh master
- sudo -i
CKA模拟环境操作截图:
- #执行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模拟环境操作截图:
ETCDCTL_API=3 etcdctl --write-out=table snapshot status /var/lib/backup/etcd-snapshot.db
CKA模拟环境操作截图:
下面我们开始进行Etcd数据还原,开始前我们先执行查看节点和Pod运行状态命令(此步骤非必须,只是练习时与数据恢复后进行状态对比,便于大家理解):
- kubectl get node
- kubectl get pod -A
CKA模拟环境Etcd数据恢复之前状态截图,第二题cpu-top三个Pod是存在的:
数据恢复过程中需要用到的目录
- mkdir /opt/backup #创建系统配置文件备份目录
- mkdir /var/lib/etcd-restore #创建ETCD数据恢复目录
- mv /etc/kubernetes/manifests/kube* /opt/backup/ #将系统配置文件移动至此目录,即官网所述停止所有API实例
CKA模拟环境操作截图:
- #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模拟环境操作截图:
- #查看数据恢复情况
- ls /var/lib/etcd-restore
- #将系统配置文件复制回系统配置目录,为K8S所有API实例重启做准备
- cp /opt/backup/* /etc/kubernetes/manifests/
CKA模拟环境操作截图:
- #备份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'
- #重启 kubelet
- systemctl daemon-reload
- systemctl restart kubelet
CKA模拟环境操作截图:
命令执行完毕,等待差不多五分钟再次执行查看节点和Pod状态命令,以下截图为数据恢复完毕后查看状态,比数据恢复之前明显少了三个命名空间为cpu-top的三个Pod
操作完成,然后执行两次exit退出master,检查主机名称进行确认
- exit #退出提权状态
- exit #退出master主机
CKA模拟环境操作截图
CKA仿真模拟环境简短演示
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。