OpenShift藍綠及灰度部署

2022-04-05 12:16:00 字數 1720 閱讀 9122

內容** 並不斷補充,感謝作者.

藍綠部署實現的是全流量切換,適合於在測試完部署的服務新版本後,最少時間將流量切換到新的服務版本。

切換路由帶來的問題是,如果乙個請求尚未完成,能否實現graceful switch

針對服務生成route

oc expose service servicea --name=service

apiversion: route.openshift.io/v1

kind: route

name: bluegreen

namespace

: bluegreen

spec:

host: service.

192.168.42.65

.nip.io

port:

targetport:

8080-tcp

to:kind: service

name: servicea

weight:

100

在serviceb測試沒有問題的時候把路由切換成b

# switch

service to serviceb

$ oc patch route/service -p '}}'

# switch

back to servicea again

$ oc patch route/service -p '

}}'

a/b部署得名於將應用功能新版本做為整體部署一部分、與舊版本並存線上進行測試的能力。通過這種方式,可以建立乙個假定,執行a/b部署,測試假定是正確還是錯誤,以及回滾到初始應用部署(a)還是繼續新版本應用部署(b)

分別建立route指到各自服務,然後進行測試

oc expose service servicearoute --name=servicea -l name='

servicea

'oc expose service servicebroute --name=serviceb -l name='

serviceb

'

建立總體路由 serviceroute,並指定分發策略

$ oc expose service servicea --name='

serviceroute

' -l name='

serviceroute

'$ oc annotate route/serivceroute haproxy.router.openshift.io/balance=roundrobin

$ oc

set route-backends serviceroute servicea=100 serviceb=0

可以通過命令調整分發策略

oc set route-backends serviceroute --adjust serviceb=+10%
介面上的設定如下

找到乙個route,然後在tls下點選edit

選擇alernate service,會出現其他服務,預設的權重是50%,設定權重即可

金絲雀部署是一種類似於a/b部署的技術,可將變更緩慢地向部分使用者推出,然後再將其推出到整個基礎架構,並提供給所有人使用。

金絲雀部署策略可以根據具體的場景制定

藍綠發布 灰度發布和滾動發布

2.灰度發布 3.滾動發布 4.小結 應用程式公升級面臨最大挑戰是新舊業務切換,將軟體從測試的最後階段帶到生產環境,同時要保證系統不間斷提供服務 長期以來,業務公升級漸漸形成了幾個發布策略 藍綠發布 灰度發布和滾動發布 這些發布方案目的是盡可能避免因發布導致的流量丟失或服務不可用問題。1.1 發布流...

藍綠發布 灰度發布和滾動發布

應用程式公升級面臨最大挑戰是新舊業務切換,將軟體從測試的最後階段帶到生產環境,同時要保證系統不間斷提供服務。長期以來,業務公升級漸漸形成了幾個發布策略 藍綠發布 灰度發布和滾動發布,目的是盡可能避免因發布導致的流量丟失或服務不可用問題。專案邏輯上分為ab組,在專案系統時,首先把a組從負載均衡中摘除,...

藍綠部署 A B測試以及灰度發布

那麼問題來了,藍綠部署 a b測試 灰度發布,這三者之間究竟有何不同?martin flower曾在文章中闡述了藍綠部署的整體要點,建議大家看看。基本上,藍綠部署是一種以可 的方式發布應用的技術,目的是減少發布過程中服務停止的時間。理論上聽起來很棒,但還是要注意一些細節 a b測試跟藍綠部署完全是兩...