1. 程式人生 > >Kubernetes叢集的主節點備份與恢復

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

通常安裝模式下(如使用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的配置檔案目錄結構

三、主節點元件恢復

    主節點元件的恢復可按以下步驟進行:

  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叢集,可以使用備份機制來恢復。

當然,可恢復的前提是:必須有備份資料!!!

四、更多的參考

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