閱讀513 返回首頁    go 微信


負載均衡路由藍綠發布策略__發布策略_用戶指南_容器服務-阿裏雲

背景信息

藍綠發布是一種零宕機的應用更新策略。進行藍綠發布時,應用的舊版本服務與新版本服務會同時並存,同一個應用不同版本的服務之間共享負載均衡,通過調節負載均衡權重的方式,可以實現不同版本服務之間的流量切換。驗證無誤後,可以通過發布確認的方式將應用的舊版本的服務刪除;如果驗證不通過,則進行發布回滾,應用的新版本會進行刪除。

場景介紹

假設您要進行藍綠發布的應用是一個 Nginx 的靜態頁麵,初始的應用模板如下。

  1. nginx-v1:
  2. image: 'registry.aliyuncs.com/ringtail/nginx:1.0'
  3. ports:
  4. - 80:80/tcp
  5. labels:
  6. aliyun.lb.port_80: tcp://proxy_test:80
  7. restart: always

部署後頁麵的效果如下。

操作步驟

  1. 登錄 容器服務管理控製台

  2. 單擊左側導航欄中的 應用

  3. 選擇目標應用所在的集群。

  4. 選擇目標應用並單擊 變更配置

    變更

  5. 選擇變更的發布模式與新版本服務的配置。

    注意:

    • 在藍綠發布中,新版本與舊版本不能共用同一個名字。
    • 在藍綠發布的場景中,為了保證應用的零宕機切換,新版本的服務的路由權重默認為 0,需要通過路由管理頁麵進行調整,方可進行流量切換。

    發布

    模板樣例如下:

    1. nginx-v2:
    2. image: 'registry.aliyuncs.com/ringtail/nginx:2.0'
    3. ports:
    4. - 80:80/tcp
    5. labels:
    6. aliyun.lb.port_80: tcp://proxy_test:80
    7. restart: always
  6. 單擊確定,發布變更。

    在發布的過程中,會經曆兩個狀態:

    • 藍綠發布中:表示新版本的服務尚未啟動完成。
    • 藍綠發布待確認:表示新版本的服務已經啟動完成,此時需要進行發布確認或者發布回滾方可進行下一次發布。

      進入應用的詳情頁麵,可以看到新版本的應用和舊版本的應用並存。其中藍色的表示舊版本的服務,綠色表示新版本的服務。如果一個服務在前後兩個版本中都存在且沒有變化,那麼會出現黃色的標簽,表示這個應用在藍綠發布中不會出現任何變化。

      過程

  7. 單擊 路由列表 並單擊設置服務權重

    如下圖所示,舊版本服務的負載均衡權重為 100,新版本服務負載均衡的權重為 0。

    要做到零宕機升級,您需要先把新版本的服務的權重值調整為 100,此時新舊服務的權重各占 50%,測試新舊版本的服務都有穩定的流量。

    注意:同時調整兩個服務的權重,可能會導致部分請求失敗,所以權重需要分為兩步進行調整,一步隻調整一個服務的權重。例如,先將新服務權重值從 0 調整為 100,待流量穩定後,再將然舊服務權重值從 100 設置為 0。下一步,將舊版本服務的權重調整為 0,新版本服務的權重調整為 100。

  8. 您可以打開一個新的瀏覽器窗口,訪問新的版本,結果如下。

  9. 當整個發布流程驗證完畢後,在應用列表頁麵,單擊 確認發布完成 並在彈出的確認對話框中單擊 確認 進行發布確認,方可進行下一次發布。

    確認

    您可以看到應用的服務列表已經更新了,舊的服務已經完全下線刪除了。

最後更新:2016-11-23 16:04:18

  上一篇:go 簡單路由藍綠發布策略__發布策略_用戶指南_容器服務-阿裏雲
  下一篇:go API 概述__API參考_容器服務-阿裏雲