基於請求內容的路由
Istio 可以基於不同的請求內容將流量路由到不同的版本, 這種策略一方面被應用於AB測試的場景
中, 另一方面配合基於流量比例的規則被應用於較複雜的灰度發佈場景中, 例如組合條件路由。
實戰目標
在生產環境中同時上線了reviews 服務的v1和v2版本, 運維人員期望讓不同的終端用戶訪問不同的版
本, 例如: 讓使用 Chrome瀏覽器的用戶看到評級信息, 但讓使用其他瀏覽器的用戶看不到評級信息。
實戰演練
參照 上節在集群中部署 ratings 服務和 reviews 服務的 v2版本, 並更新reviews 服務的
DestinationRule。
執行如下命令配置forecast服務的路由規則:
cat virtual-service-reviews-v1-header.yaml
<code>apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - match: - headers: user-agent: #對齊格式很重要,不然會失敗 regex: '^.*(Chrome).*' route: - destination: host: reviews subset: v2 - route: - destination: host: reviews subset: v1/<code>
在瀏覽器中查看配置後的效果: 用 Chrome瀏覽器多次查詢天氣信息, 發現始終顯示推薦信息, 說明
訪問到reviews服務的v2版本; 用IE瀏覽器多次查詢, 發現始終不顯示評級信息, 說明
訪問到reviews服務的v1版本。
下節介紹多服務灰度發佈
如果對您有幫助,記得不要忘了給個關注哦!!!@上海IT故事
還可以關注我之前的文章:
@監控系列 Prometheus