目錄
免費獲取題庫配套?CKA_v1.31_模擬系統?
15、?備份還原Etcd
題目:?
開始操作:
1)、切換集群
2)、登錄master并提權
3)、備份Etcd現有數據
4)、驗證備份數據快照
5)、查看節點和Pod狀態?
6)、創建目錄
7)、執行Etcd數據恢復命令
8)、驗證恢復情況?
9)、更改Etcd配置
10)、將K8S配置文件復制回配置目錄
11)、重啟kubelet
12)、再次查看驗證
13)、退回node01
免費獲取題庫配套?CKA_v1.31_模擬系統?
15、?備份還原Etcd
題目:?
您必須在以下Cluster/Node上完成此考題: ? ?
? Cluster?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Master node?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Worker node
? ?? ?wk8s? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?master? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? node01
.
設置配置環境:
[candidate@node01]$ ?kubectl config use-context wk8s
.
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)、切換集群
# 考試時有多套集群環境,以免答題環境相互干擾。
# 所以考試時務必按照題目要求先切換到所對應的集群環境,才是正確答題的前提,非常重要
# 請務必確認現在所處節點為node01,否則無法切換集群而報錯
kubectl config use-context wk8s
2)、登錄master并提權
有些人較勁說題目沒有說讓登錄master,然后在node01一頓操作,我只能說總得登錄master看Etcd配置文件吧,考試的時候千萬別較勁
ssh master
sudo -i
CKA模擬環境操作截圖:
3)、備份Etcd現有數據
#執行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)、驗證備份數據快照
ETCDCTL_API=3 etcdctl --write-out=table snapshot status /var/lib/backup/etcd-snapshot.db
CKA模擬系統操作截圖可見驗證快照命令提示使用etcdutl代替,我們直接使用etcdutl操作,
5)、查看節點和Pod狀態?
在開始ETCD恢復操作之前,先看一下pod presentation個數,相當于一個狀態標記,做為參照,用于恢復完畢的對比,證明數據已成功恢復:
kubectl get pod -n default | grep presentation | wc -l
CKA模擬系統操作截圖若此時還未操作第14題“擴容deployment數量”,那么命令執行完應該得到的數字是“1”如下圖所示:
?CKA模擬系統操作截圖若此時已經做完第14題“擴容deployment數量”,那么命令執行完應該得到的數字是“4”如下圖所示:
6)、創建目錄
數據恢復過程中需要用到的目錄
#創建系統配置文件備份目錄,其實可以不創建,直接將系統配置文件移到已存在的/data/backup
mkdir /opt/backup#創建Etcd備份將要恢復數據的位置目錄
mkdir /var/lib/etcd-restore #將系統配置文件移動至此目錄,即官網所述停止所有API實例
mv /etc/kubernetes/manifests/* /opt/backup/
CKA模擬環境操作截圖:??
7)、執行Etcd數據恢復命令
#官方說明:
#在恢復集群時,使用?--data-dir?選項來指定集群應被恢復到哪個文件夾。
#其中?<data-dir-location>?是將在恢復過程中創建的目錄。
#自 etcd v3.5.x 版本起,使用?etcdctl?進行恢復的功能已被棄用,未來的可能會在 etcd 版本中被移除。
etcdutl --data-dir=/var/lib/etcd-restore snapshot restore /data/backup/etcd-snapshot-previous.db
CKA模擬環境操作截圖:?
8)、驗證恢復情況?
#查看數據恢復情況
ls /var/lib/etcd-restore
9)、更改Etcd配置
#1.31版本環境按照之前方法多次未成功,參考官網所述在原目錄恢復方法,直接移除原數據目錄,在生成新的配置文件,最后重啟所有API接口
#移除原數據目錄
mv /var/lib/etcd /opt/backup/#替換原有配置路徑并生成新的etcd.yaml配置文件
sed 's!/var/lib/etcd!/var/lib/etcd-restore!' /opt/backup/etcd.yaml > /etc/kubernetes/manifests/etcd.yaml#檢查搜索是否有為替換配置
cat /etc/kubernetes/manifests/etcd.yaml | grep '/var/lib/etcd'
?CKA模擬系統操作截圖
10)、將K8S配置文件復制回配置目錄
cp /opt/backup/kube* /etc/kubernetes/manifests/
11)、重啟kubelet
#重啟 kubelet
systemctl daemon-reload
systemctl restart kubelet
CKA模擬環境操作截圖:?
12)、再次查看驗證
#驗證集群是否重啟完畢
kubectl get node #查看pod presentation數量,恢復完成后獲取到的數字應該是“2”
kubectl get pod -n default | grep presentation | wc -l
CKA模擬系統操作截圖,執行完畢后得到的數字值是“2”,說明我們已經恢復成功。
13)、退回node01
操作完成,然后執行兩次exit退出master,檢查主機名稱進行確認
exit #退出提權狀態
exit #退出master主機
CKA高仿真環境簡短演示視頻?