Kubernetes集羣的主節點備份與恢復

一般安裝模式下(如使用kubeadm)的Kubernetes集羣,主節點(Master)只有一個,並且集羣數據存儲服務etcd也只運行了一個實例。若是遇到極端狀況(如整機故障、主硬盤損壞、數據誤刪除等)致使master節點沒法訪問,則整個集羣都將沒法訪問或出現異常現象。因此master節點機器性能要求不必定很高,可是穩定性是越高越好。html

爲了有備無患,對主節點須要作好備份。數據庫

Kubernetes master節點控制組件的備份及恢復包括:容器鏡像,etcd數據庫,主節點證書、配置參數、插件等部分。運維

1、etcd數據庫備份

通常來講,若是master節點須要備份恢復,除了誤操做和刪除,極可能就是整個機器已出現了故障,故而可能須要同時進行etcd數據的恢復。性能

在恢復時,在待恢復機器上的機器名稱和ip地址須要與崩潰前的主節點配置徹底同樣,由於這個配置寫在etcd數據存儲當中的。測試

etcd數據庫備份的具體操做方法參見:spa

2、主節點數據備份

除了etcd數據庫,主節點數據備份還包括下面三個部分:插件

  • /etc/kubernetes/目錄下的全部文件(證書,manifest文件)
  • 用戶主目錄下 .kube/config文件(kubectl鏈接認證)
  • /var/lib/kubelet/目錄下全部文件(plugins容器鏈接認證)

目錄結構參考:Kubernetes的配置文件目錄結構 htm

3、主節點組件恢復

    主節點組件的恢復可按如下步驟進行:blog

  1.  按以前的安裝腳本進行全新安裝。
    • kubeadm reset,iptables –X…
  2.  中止系統服務。
    • systemctl stop kubelet.service
  3.  刪除相關插件容器
    • coredns, flannel, dashboard...
  4. 恢復etcd數據
  5.  將以前備份的三個目錄依次還原。
  6.   重啓系統服務。
    • systemctl start kubelet.service。
  7.  稍等片刻,待全部組件啓動成功後進行驗證。
    • kubectl cluster-info

對於小規模的開發、測試、數據處理等Kubernetes集羣,可使用備份機制來恢復。

固然,可恢復的前提是:必須有備份數據!!!

4、更多的參考

對於有必定規模的生產用集羣,尤爲是用於服務處理的集羣,經過備份機制恢復將會影響業務的持續,應該作到主節點的雙活、多活以及異地互備。不過,可用性要求越高,對硬件和運維人員都有更高的要求,費用也會大幅度上升,可用性的級別應該根據業務需求來進行選擇,後面咱們再繼續探討。

相關文章
相關標籤/搜索