91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

發布時間:2020-08-15 00:36:35 來源:ITPUB博客 閱讀:172 作者:阿里巴巴云原生 欄目:云計算

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

作者 | 白寂 阿里云開發工程師

導讀:前三篇文章我們介紹了應用的開發和部署,那么在應用成功上云后,我就要面對應用的管理話題了,這一篇我們來看看如何做線上發布,并且是可灰度的。

相關文章推薦:

  • 《SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 開發篇》
  • 《SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(開發部署)》
  • 《SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(工具部署)》

前言

在新版本上線時,無論是從產品穩定性還是用戶對新版本的接受程度上考慮,直接將老應用升級到新版本應用都有很大風險的。我們一般的做法是,保證新老版本同時在線,并且先將少部分流量切換到新版本應用上,同時在此期間對新版本的應用請求進行觀察。在確認新版本沒有問題后,再逐步將更大比例的流量切換到新版本上。這個過程的核心是可以對流量的流入轉發規則進行配置,EDAS 的金絲雀發布能力,提供了多個版本同時在線的能力,并且提供了靈活的配置規則來給不同的版本進行流量分配。

部署在 EDAS Kubernetes 集群中的 Spring Cloud 微服務應用,在新版本發布的時候可以使用金絲雀發布進行小規模驗證,驗證通過后再全量升級。

金絲雀發布配置

首先,進入 EDAS 的應用部署頁面,對我們要進行部署升級的應用進行發布,在這里我們選擇金絲雀(灰度)發布。需要注意的是,對灰度發布的流量控制,當前只對非入口應用的 Dubbo 和 Spring Cloud 應用生效。所謂入口應用,即承接外部流量的第一個應用節點。并且若您的應用使用了 HPA、Rancher、Istio、或者依賴Deployment.Metadata.Name 或 Deployment.Metadata.Uid 的功能與配置等 K8s 原生功能或配置時,請勿使用灰度發布或分批發布。否則,應用部署之后,這些 K8s 原生功能或配置將出現異常。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

在發布頁面,可以選擇通過上傳 JAR 包或者填入 JAR 包地址的方式選擇要進行發布的新版本應用部署包。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

在選擇好要進行發布的新版本應用部署包后,接下來進行發布策略的配置。這里分為兩個部分:

  • 第一部分可以對發布批次進行設置,例如設置發布灰度批次,首批進行灰度的 pod 實例個數,分批間處理方式等;
  • 第二部分可以對流量灰度規則進行配置,我們可以選擇按流量內容進行灰度或者簡單地按照流量比例進行灰度,下面將詳細介紹這兩種發布策略配置。

設置發布策略

在批次發布這里我們可以進行的配置有:

  • 首批灰度數量:在點擊發布后,會首先將首批灰度數量個數的實例進行新版本的發布,為了保證應用的穩定性,首批灰度的實例數不能超過應用實例總數的 50%。比如當前實例數是 7 臺,那么最多只能選擇 3 臺作為首批灰度的實例;
  • 剩余批次:首批灰度發布完成后,剩余的應用實例將按照此處指定的批次發布完成;
  • 分批間處理方式:剩余批次間的處理方式可選擇手動或者自動,若選擇自動,則剩余的幾個批次將在前一批發布完成后進行自動發布,自動發布的批次間隔也可進行配置,例如配置每批次在發布完成后,30 分鐘后自動進行下一批次的發布;
  • 批次內部署間隔:每一批次內,如果此批次內要發布的應用實例數大于 1,則要進行此配置指定批次內實例部署間隔。

在下面的例子中,我們現在有 7 個 pod 應用實例,選擇首批對 2 個實例進行灰度升級。在首批 2 個實例的灰度發布完成后,將剩下的 5 個實例分 3 個批次進行發布。這3個批次的批次間處理方式選擇自動發布,在當前批次發布完成 30 分鐘后自動進行下一批次的發布。同時,由于第 2 批次和第 2 批次內實例個數為兩臺,因此選擇批次內兩臺實例部署間隔為 60 秒。在發布頁面右側可以對我們的發布策略配置信息進行預覽。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

設置灰度規則

目前支持 按內容灰度按比例灰度兩種方式設置灰度規則。按請求內容進行灰度支持將請求內容符合指定灰度規則條件的流量作為灰度流量,進入到灰度實例中,例如,選擇用戶 ID 模 100 小于等于 40 的流量作為灰度流量進入灰度實例進行處理,而用戶 ID 模 100 大于 40 的仍然進入非灰度實例進行處理,如圖 1 所示。而按流量比例進行灰度是指,將指定比例的請求流量作為灰度流量進入灰度實例進行處理,例如指定 40% 的流量作為灰度流量,如圖 2 所示。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)
(圖1)
SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)
(圖2)

按請求內容進行灰度

按請求內容進行灰度可以進行下面指定參數的配置,來決定有哪些請求內容特征的流量將作為灰度流量進入灰度實例中。

  • 協議類型:可選擇 Spring Cloud 和 Dubbo,這里我們主要介紹 Spring Cloud 協議。在 Spring Cloud 協議下需要對 HTTP 請求路徑進行配置;
  • 條件模式:針對下面配置的的條件列表,可配置條件模式為: 同時滿足下列條件滿足下列任一條件。符合條件模式的請求將作為灰度流量;
  • 條件列表:Spring Cloud 協議下可分別對 Cookie、Header 和 Parameter 3 種請求內容進行條件配置。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

按比例進行灰度

按比例灰度即設置 流量比例,然后請求流量會按配置的比例被轉發到當前的灰度分組中進行處理。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

灰度發布并驗證新版本應用是否符合預期

配置好發布配置后,即可開始進行灰度發布,EDAS 將先在指定的灰度分組中部署新版本應用,可在進入 變更詳情頁面查看部署進度和狀態。如果在灰度發布時,發現新版本有問題,還可以終止變更并對應用進行回滾。

在灰度的發布過程中,可對應用進行監控,以監控灰度流量是否符合預期,同時可以對應用狀態進行新老版本的對比。在當前批次的灰度流量驗證完成后,在變更詳情頁面單擊開始下一批,完成后續分批發布。如果在驗證過程中,發現新版本應用有問題,可以在變更詳情頁面右上角單擊立即回滾。在彈出的立即回滾對話框確認回滾的影響,然后單擊回滾。

關于如何監控灰度流量,可以參考 EDAS文檔《監控灰度流量》。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

灰度發布后,在基本信息頁面查看部署包是否為新部署的應用版本。在實例部署信息頁面查看應用實例的運行狀態是否為運行正常。

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)

結語及其后續

本章我們介紹了如何對 EDAS Kubernetes 集群上的 Spring Cloud 應用進行灰度發布,在灰度發布過程中,我們可以靈活地配置發布策略、灰度規則以及在發布過程中對流量及應用狀態進行監控,并且提供了終止回滾等操作,最大程度地保證應用能夠平滑地進行版本升級。接下來的文章中,我們將詳細介紹在發布過程中如何對應用進行監控。

“ 阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的公眾號。”

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平谷区| 丹江口市| 斗六市| 和林格尔县| 邹城市| 进贤县| 敦化市| 金华市| 湟中县| 郴州市| 东阿县| 长子县| 桃源县| 鄂托克前旗| 马关县| 含山县| 会同县| 积石山| 怀柔区| 漠河县| 信丰县| 潍坊市| 雷山县| 榕江县| 东安县| 垦利县| 荆州市| 威海市| 广丰县| 塔河县| 天津市| 隆昌县| 利辛县| 万荣县| 石渠县| 鹿邑县| 五原县| 巩留县| 商城县| 昌江| 明光市|