首先目前現有的K8s元件Resources確認如下:
以下備份指令(配合K8s目前已升版到1.22,備份檔名稱多帶122):
sudo ETCDCTL_API=3 etcdctl snapshot save /tmp/etcd-backup-122.db \--cacert /etc/kubernetes/pki/etcd/ca.crt \--cert /etc/kubernetes/pki/etcd/server.crt \--key /etc/kubernetes/pki/etcd/server.key
接著確認備份檔狀態指令執行:
sudo ETCDCTL_API=3 etcdctl snapshot status /tmp/etcd-backup-122.db --write-out=table
接著還原備份檔為實際etcd可以吃的目錄檔案,執行以下:
sudo ETCDCTL_API=3 etcdctl snapshot restore /tmp/etcd-backup-122.db --data-dir /var/lib/etcd122backup
所以在改為忽略hash檢核:
sudo ETCDCTL_API=3 etcdctl snapshot restore /tmp/etcd-backup-122.db --data-dir /var/lib/etcd122backup --skip-hash-check=true
確認:
接著就是告訴當前的etcd去參考到上面建好的新的備份檔目錄:
看來還是有問題...而且又是新的問題...冏!
可以估計是etcd-pod起不來了...
最後還是還原:
過一陣子確定指令可以正常執行:
不過這次就拿不到etcd pod裡面的log了
因為整個指令在指向備份的etcd備份檔案目錄後都掛了
kubectl指令發動會指向到master本身的API-Server
但是過程API-Server會參考到etcd,這過程就如上看到
似乎連API-Server都連不到了的樣子...(看起來牽連到API-Server也掛了)
待解! 也許哪天我又升到1.23有空再來試試看
看起來我也不孤單:
我跟二樓一樣,做skip,但是轉過去備份的目錄後,連API Server都掛了…