第二十三章 九析帶你輕鬆完爆 Istio - destination rule 介紹

系列文章:


總目錄索引:九析帶你輕鬆完爆 istio 服務網格系列教程

目錄

1 前言

2 邀約

3 介紹

4 路由策略

5 樣例說明


1 前言

        如果你對博客有任何疑問,請告訴我。1.png


2 邀約

        你可以從 b 站搜索 “九析”,獲取免費的、更生動的視頻資料:clipboard2.png


3 介紹

        上章展示了 destination rule 一個實例。

        destination rules 是 Istio 流量路由的關鍵功能,它不能獨自使用,必須跟 Virtual Service 共同發揮作用。當 destination rules 跟 virtual service 共同使用的時候,virtual service 決定將流量路由到邏輯地址,而 destination rules 則決定流量路由到物理地址。

        virtual service 跟 destination rules 路由關係就像變量到內存的地址映射一樣,destination 代表內存實際地址,而 virtual service 作用就像程序的指針。

        destination rules 通常用在微服務的版本分組上(例如可以通過 version 標籤將微服務進行分組)。通過 destination rules 的分組規則可以實現將流量路由到服務的不同版本中,進而實現類似灰度、金絲雀、藍綠等版本分流的策略。

        destination rules 不僅可以決定把流量路由到何處,還可以制定如何路由流量(比如是輪詢路由流量,還是隨機路由流量等等)。有關 destination rules 選項可以參考 Destination Rule 指南


4 路由策略

        默認情況下,Istio 使用輪詢的負載均衡路由策略(round-robin),也就是說服務所有實例按順序接收請求。當然 Istio 也支持如下的模型,這些模型都可以通過在 destination rule 中進行指定:

Random:請求被隨機分配給服務的實例

Weighted:請求基於權重被分配給服務的實例

Least requests:請求被分配給服務最少被訪問的實例


5 樣例說明

        Istio 官方給出的 destination rule 樣例如下:clipboard3.png

        上例 destination rule 中指定了 subsets,子集是根據 version 來定義。注意,這裏 labels 內容可以自由定義,不一定非要是 version。其中的 trafficPolicy 就是流量路由到服務所有實例的策略(比如隨機、輪詢、按權重、最少訪問等)。此外針對 v2 這個 subsets,它的路由策略比較特殊,它覆蓋了默認的 RANDOM 方式,而是直接採用了 ROUND_ROBIN 方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章