直接重新開機節點可能會導緻叢集出現異常。比如,對于 Swarm Mode 叢集内的 Manager 節點,如果 Manager 健康節點數小于 2,則可能會導緻叢集無法自愈,最終導緻叢集不可用。本文結合阿裡雲曆史案例經驗,說明了在對容器服務進行主動運維等場景下,需要重新開機節點時的操作最佳實踐。
在重新開機容器服務節點前,建議先檢查或修正如下業務配置,以避免節點重新開機觸發單點異常,進而導緻業務可用性受損:
配置資料持久化政策
配置重新開機政策
建議為相應業務服務配置 <code>restart: always</code> 自重新開機政策,以便節點重新開機後,相應容器能自動拉起。
配置高可用政策
建議首先參閱前述說明,檢查業務高可用性配置。然後 在每個節點上(切忌同時對多個節點進行操作),依次按如下步驟操作:
快照備份:
建議先對節點所有關聯磁盤建立最新快照進行備份,以避免由于長時間未重新開機伺服器,導緻節點關機後啟動過程中出現異常導緻業務可用性受損。
驗證業務容器配置有效性(Swarm Mode 叢集忽略):
對于非 Swarm Mode 叢集,重新開機節點上的相應業務容器,確定容器能正常被重新拉起。
說明:
修改節點角色(Swarm Mode 叢集)
驗證 Docker Engine 運作有效性
嘗試重新開機 docker daemon ,確定 docker enginger 能正常重新啟動。
執行相關運維操作
執行計劃内的相關運維操作,比如業務代碼更新、系統更新檔安裝、系統配置調整等。
重新開機節點
在控制台或系統内部,正常重新開機節點。
重新開機後狀态檢查
回調節點角色(Swarm Mode 叢集)