Kubernetes叢集的主節點備份與恢復
阿新 • • 發佈:2018-12-06
通常安裝模式下(如使用kubeadm)的Kubernetes叢集,主節點(Master)只有一個,而且叢集資料儲存服務etcd也只運行了一個例項。如果遇到極端情況(如整機故障、主硬碟損壞、資料誤刪除等)導致master節點無法訪問,則整個叢集都將無法訪問或出現異常現象。所以master節點機器效能要求不一定很高,但是穩定性是越高越好。
為了有備無患,對主節點需要做好備份。
Kubernetes master節點控制組件的備份及恢復包括:容器映象,etcd資料庫,主節點證書、配置引數、外掛等部分。
一、etcd資料庫備份
一般來說,如果master節點需要備份恢復,除了誤操作和刪除,很可能就是整個機器已出現了故障,故而可能需要同時進行etcd資料的恢復。
在恢復時,在待恢復機器上的機器名稱和ip地址需要與崩潰前的主節點配置完全一樣,因為這個配置寫在etcd資料儲存當中的。
etcd資料庫備份的具體操作方法參見:
二、主節點資料備份
除了etcd資料庫,主節點資料備份還包括下面三個部分:
- /etc/kubernetes/目錄下的所有檔案(證書,manifest檔案)
- 使用者主目錄下 .kube/config檔案(kubectl連線認證)
- /var/lib/kubelet/目錄下所有檔案(plugins容器連線認證)
目錄結構參考:Kubernetes的配置檔案目錄結構
三、主節點元件恢復
主節點元件的恢復可按以下步驟進行:
- 按之前的安裝指令碼進行全新安裝。
- kubeadm reset,iptables –X…
- 停止系統服務。
- systemctl stop kubelet.service
- 刪除相關外掛容器
- coredns, flannel, dashboard...
- 恢復etcd資料
- 將之前備份的三個目錄依次還原。
- 重啟系統服務。
- systemctl start kubelet.service。
- 稍等片刻,待所有元件啟動成功後進行驗證。
- kubectl cluster-info
對於小規模的開發、測試、資料處理等Kubernetes叢集,可以使用備份機制來恢復。
當然,可恢復的前提是:必須有備份資料!!!
四、更多的參考
對於有一定規模的生產用叢集,尤其是用於服務處理的叢集,通過備份機制恢復將會影響業務的持續,應該做到主節點的雙活、多活以及異地互備。不過,可用性要求越高,對硬體和運維人員都有更高的要求,費用也會大幅度上升,可用性的級別應該根據業務需求來進行選擇,後面我們再繼續探討。