)
本方案適用于在阿里云負載均衡SLB/ALB后端掛載兩臺 ECS 的場景下對其中一臺服務(wù)器進行平滑升級的操作。通過滾動升級的方式最大程度減少對業(yè)務(wù)的影響。一、 準備工作升級前選擇時間窗口建議選擇業(yè)務(wù)低峰期進行操作。確認服務(wù)健康登錄阿里云負載均衡控制臺確認兩臺 ECS假設(shè)為 ECS-A 和 ECS-B本次先升級 ECS-A的健康檢查狀態(tài)均為正常。準備回滾預(yù)案明確回滾步驟確保在升級失敗時能夠快速恢復(fù)舊版本。二、 升級執(zhí)行步驟第一步從負載均衡中平滑下線以 ECS-A 為例直接移除服務(wù)器可能會中斷正在處理的請求建議通過調(diào)整權(quán)重實現(xiàn)平滑下線。登錄阿里云負載均衡SLB/ALB控制臺。找到對應(yīng)的虛擬服務(wù)器組或默認服務(wù)器組。將ECS-A 的權(quán)重修改為 0不建議直接移除改權(quán)重為 0 更易于維護。等待 1~3 分鐘具體時間取決于業(yè)務(wù)的連接保持時間/Keep-Alive讓已經(jīng)在 ECS-A 上的存量連接處理完畢。此時所有新流量將只會分發(fā)到 ECS-B。第二步創(chuàng)建快照備份在對 ECS-A 進行任何重大更改前必須進行快照備份。登錄ECS 控制臺。找到 ECS-A選擇“云盤”為系統(tǒng)盤及必要的業(yè)務(wù)數(shù)據(jù)盤創(chuàng)建手動快照。等待快照創(chuàng)建進度達到 100%。第三步實施升級根據(jù)實際需求執(zhí)行升級操作若升級 ECS 硬件規(guī)格CPU/內(nèi)存在 ECS 控制臺停止 ECS-A修改規(guī)格后重新啟動。若升級應(yīng)用代碼/配置通過 SSH 登錄 ECS-A部署新版本代碼或修改配置。第四步本地驗證與日志檢查在重新引入流量前必須確保本地服務(wù)運行正常。檢查進程與端口登錄 ECS-A確認應(yīng)用服務(wù)已成功啟動相關(guān)端口如 80、8080 等處于監(jiān)聽狀態(tài)。觀察日志查看應(yīng)用日志確認沒有報錯信息且有系統(tǒng)初始化的正常日志打印。繞過 SLB 進行本地測試在 ECS-A 本地使用curl http://127.0.0.1:端口進行訪問測試。如果 ECS-A 綁定了彈性公網(wǎng) IPEIP可以通過該公網(wǎng) IP 直接訪問確認頁面或接口響應(yīng)正常。如果沒有公網(wǎng) IP可通過同 VPC 內(nèi)的其他測試機通過內(nèi)網(wǎng) IP 訪問 ECS-A 進行測試。三、 流量回切與觀察第五步灰度引入流量確認 ECS-A 驗證無誤后返回SLB 控制臺。將 ECS-A 的權(quán)重從 0 恢復(fù)建議先設(shè)為較小權(quán)重如10進行觀察或直接恢復(fù)到正常權(quán)重。觀察監(jiān)控與日志觀察 ECS-A 的應(yīng)用日志確認有真實業(yè)務(wù)請求流入且處理正常。觀察 SLB 的監(jiān)控指標確認無異常的 5xx 狀態(tài)碼。第六步完全恢復(fù)經(jīng)過 10~15 分鐘觀察無異常后將 ECS-A 的權(quán)重完全恢復(fù)。第一臺服務(wù)器ECS-A升級完成。四、 后續(xù)操作滾動升級第二臺在 ECS-A 穩(wěn)定運行一段時間后以同樣的步驟升級ECS-B將 ECS-B 權(quán)重設(shè)為 0。給 ECS-B 創(chuàng)建快照。升級 ECS-B 并進行本地驗證?;謴?fù) ECS-B 權(quán)重。五、 應(yīng)急回滾預(yù)案若升級出現(xiàn)異常如果在引入流量后發(fā)現(xiàn)新版本存在嚴重異常如服務(wù)崩潰、大量 5xx 錯誤立即隔離迅速將升級故障機的 SLB 權(quán)重設(shè)為 0確保新流量全部由另一臺正常的服務(wù)器承擔(dān)。版本回滾若是代碼問題直接回滾應(yīng)用版本。若系統(tǒng)配置或環(huán)境損壞導(dǎo)致無法啟動利用第二步中創(chuàng)建的快照在 ECS 控制臺執(zhí)行“回滾云盤”操作使服務(wù)器快速恢復(fù)到升級前的狀態(tài)。